0Pricing
Scala for Backend Engineering & Functional Programming · Ders

Satır İçi Yöntemler

Scala 3 inline

Satır İçi Yöntemler, CoddyKit'te ücretsiz bir Scala for Backend Engineering & Functional Programming dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Scala for Backend Engineering & Functional Programming öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Scala for Backend Engineering & Functional Programming kursu toplamda 4 dersten oluşur.

inline Nedir?

Scala 3'teki inline anahtar sözcüğü, derleyiciye bir tanımı derleme sırasında çağrı noktasında genişletmesini söyler. Tam makrolardan önce metaprogramlamaya giriş noktasıdır.

Inline Yöntem

Bir yöntemi inline olarak işaretlediğinizde gövdesi, çağrıldığı her yerde yerine konur. Bu, çağrı ek yükünü kaldırabilir ve derleme zamanı özelleştirmesini etkinleştirebilir.

inline def square(x: Int): Int = x * x

val r = square(5) // compiles to 5 * 5

Inline Parametreleri

Bir inline parametresi, bağımsız değişkeninin de satır içine alınmasını zorunlu kılar. Bağımsız değişken bir sabitse derleyici onu bir değişmeze dönüştürebilir.

inline def power(x: Int, inline n: Int): Int =
  if (n == 0) 1 else x * power(x, n - 1)

Sabit Katlama

Inline parametreleri değişmez olduğunda dallar ve özyineleme derleme zamanında tamamen çözülebilir; bayt kodunda yalnızca son ifade kalır.

inline def power(x: Int, inline n: Int): Int =
  if (n == 0) 1 else x * power(x, n - 1)

val c = power(2, 3) // expands to 2 * 2 * 2 * 1

inline if ve inline match

Bir inline yönteminin içinde inline if ve inline match, incelenen değer statik olarak bilindiğinde derleme zamanında çözümlenir ve gereksiz dalları ortadan kaldırır.

inline def label(inline b: Boolean): String =
  inline if (b) "yes" else "no"

Şeffaf Inline

transparent inline, yöntemin dönüş türünün her çağrı noktasına göre inceltilmesini sağlar; derleyici, bildirilen türden daha özel bir tür çıkarabilir.

transparent inline def first(inline b: Boolean): Any =
  inline if (b) 1 else "x" // type can be Int or String

compiletime.error

scala.compiletime paketi, özel bir iletiyle derlemeyi başarısız kılmak için error gibi araçlar sunar; bu, inline bağımsız değişkenlerini doğrulamak için kullanışlıdır.

import scala.compiletime.error

inline def positive(inline n: Int): Int =
  inline if (n <= 0) error("n must be positive") else n

Inline Değerler

Bir inline val, gerçek bir derleme zamanı sabitidir. Diğer inline hesaplamalarında olduğu gibi değişmezlerin gerektiği yerlerde kullanılabilir.

inline val MaxRetries = 3

inline def retries: Int = MaxRetries

Performans ve Kod Boyutu

Inline kullanımı, kod boyutunu hız ve derleme zamanı güvenceleriyle değiş tokuş eder. Büyük gövdelerde aşırı kullanılması bayt kodunu şişirir; bu nedenle yalnızca küçük, sık çalıştırılan veya özelleştirme açısından kritik yöntemler için kullanın.

Inline Olmadan Çalıştırılabilir

Aynı karesini alma mantığının sıradan, kendi başına çalışan bir program olarak hâli burada verilmiştir. Inline sürüm, çarpma işlemi çağrı noktasında genişletilse de aynı sonuçları üretir.

object Main {
  def square(x: Int): Int = x * x
  def main(args: Array[String]): Unit = {
    println(square(5)) // 25
  }
}

Inline Temeldir

Makrolar inline yöntemlerin üzerine kuruludur: bir inline tanım, kod üretmek için makro çağırabilir. Önce inline kavramını öğrenmek makro katmanını çok daha kolaylaştırır.

Hızlı Kontrol

Bir inline yöntemine transparent eklemek neyi değiştirir?

Özet

Scala 3'te inline kullanımını öğrendiniz:

  • inline def çağrı noktasında genişler
  • inline parametreleri ve sabit katlama
  • inline if / inline match
  • transparent inline, inline val, compiletime.error

Sıradaki konu: makro temelleri.

Sıkça Sorulan Sorular

“Satır İçi Yöntemler” dersi ücretsiz mi?

Evet — “Satır İçi Yöntemler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Scala for Backend Engineering & Functional Programming kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Scala for Backend Engineering & Functional Programming kursu toplamda 4 dersten oluşur.

“Satır İçi Yöntemler” dersinde ne öğreneceğim?

Scala 3 inline Scala for Backend Engineering & Functional Programming ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Scala for Backend Engineering & Functional Programming öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Scala for Backend Engineering & Functional Programming, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Satır İçi Yöntemler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Scala for Backend Engineering & Functional Programming dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Scala for Backend Engineering & Functional Programming dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Satır İçi Yöntemler
  2. Makro Temelleri
  3. Alıntılar ve Eklemeler
  4. Pratik Makrolar
← Scala for Backend Engineering & Functional Programming Sayfasına Dön