0Pricing
Scala for Backend Engineering & Functional Programming · Ders

Anlamlı Girintileme

İsteğe bağlı süslü parantezler

Anlamlı Girintileme, 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.

İsteğe Bağlı Süslü Ayraçlar

Scala 3, isteğe bağlı süslü ayraç söz dizimi olarak da adlandırılan anlamlı girintiyi kullanıma sunar. Blokları { } içine almak yerine, sınırlarını belirlemek için girinti kullanabilirsiniz.

  • Süslü ayraçlar hâlâ çalışır ve tamamen geçerlidir.
  • Girinti tabanlı kod daha temizdir ve Python'a benzer.
object Main:
  def main(args: Array[String]): Unit =
    println("No braces needed")

Girintili Yöntem Gövdeleri

= işaretini izleyen bir yöntem gövdesi girintili bir blok olabilir. Aynı girinti düzeyindeki her ifade bu gövdeye aittir.

Son ifade döndürülen değerdir.

object Main:
  def square(x: Int): Int =
    val result = x * x
    result

  def main(args: Array[String]): Unit =
    println(square(5))

Girintili if İfadeleri

Denetim yapıları yeni, daha sade söz dizimini kullanır. if cond then sonrasında dalı girintileyin; else ise if ile aynı hizaya gelir.

  • Süslü ayraçsız biçimde then gereklidir.
  • Koşulun çevresinde parantez kullanmak gerekmez.
object Main:
  def main(args: Array[String]): Unit =
    val n = 7
    val label =
      if n % 2 == 0 then "even"
      else "odd"
    println(label)

Girintili for Döngüleri

for döngüsü, yan etkiler için do, koleksiyon oluşturmak için yield kullanır; her ikisinde de girintiden yararlanılır.

object Main:
  def main(args: Array[String]): Unit =
    for i <- 1 to 3 do
      println(s"line $i")

    val doubled =
      for i <- 1 to 3 yield i * 2
    println(doubled)

Girintili while Döngüleri

while döngüsü, isteğe bağlı süslü ayraç biçiminde do sonrasında gelen girintili bir blok kullanır.

object Main:
  def main(args: Array[String]): Unit =
    var i = 0
    while i < 3 do
      println(s"i = $i")
      i += 1

Girintili match İfadeleri

Örüntü eşleme doğal olarak girintiyle uyumludur. case yan tümceleri match altında girintilenir.

object Main:
  def describe(n: Int): String =
    n match
      case 0 => "zero"
      case 1 => "one"
      case _ => "many"

  def main(args: Array[String]): Unit =
    println(describe(1))
    println(describe(9))

Sınıf ve Trait Gövdeleri

Sınıflar, trait'ler ve nesneler de süslü ayraçlarını kaldırabilir. Başlıktan sonra gelen iki nokta :, girintili gövdeyi başlatır.

class Point(x: Int, y: Int):
  def show: String = s"($x, $y)"

object Main:
  def main(args: Array[String]): Unit =
    println(Point(2, 3).show)

end İşareti

Uzun girintili bloklarda, bir tanımın nerede sona erdiğini açıklığa kavuşturmak için end işareti ekleyebilirsiniz. Bu, büyük yöntemlerin veya sınıfların okunabilirliğini artırır.

  • Biçim: end <name> veya end if, end while vb.
  • İsteğe bağlıdır ve derleyici tarafından denetlenir.
object Main:
  def greet(name: String): String =
    val msg = s"Hello, $name"
    msg
  end greet

  def main(args: Array[String]): Unit =
    println(greet("Ada"))
  end main
end Main

Süslü Ayraçları ve Girintiyi Birlikte Kullanma

Her iki biçimi de özgürce birlikte kullanabilirsiniz. Bazı ekipler, iç içe durumlarda açıklık sağlamak için süslü ayraçları korur. Girinti kuralları yalnızca süslü ayraçların bulunmadığı yerlerde uygulanır.

object Main:
  def main(args: Array[String]): Unit = {
    val xs = List(1, 2, 3)
    val total =
      xs.foldLeft(0)((acc, x) => acc + x)
    println(total)
  }

Yaygın Girinti Sorunları

Girinti anlam taşıdığından tutarlı olun.

  • Boşluk kullanın; sekmeleri boşluklarla karıştırmayın.
  • Hizası bozuk bir satır fark edilmeden bir bloğun dışında kalabilir.
  • Şablon gövdeleri (sınıflar/nesneler) için : gereklidir; ancak = sonrasındaki yöntem gövdeleri için gerekmez.
object Main:
  def main(args: Array[String]): Unit =
    val items = List("a", "b")
    items.foreach: item =>
      println(item.toUpperCase)

Daha Az Süslü Ayraçlı Bağımsız Değişken Söz Dizimi

Scala 3, iki nokta sonrasında bir blok bağımsız değişkeni geçirmeye de izin verir. items.foreach: x =>, iç içe parantez ve süslü ayraç kullanımını önleyerek girintili bir lambda gövdesi açar.

object Main:
  def main(args: Array[String]): Unit =
    val nums = List(1, 2, 3, 4)
    val evens = nums.filter: n =>
      n % 2 == 0
    println(evens)

Hızlı Kontrol

Anlamlı girinti konusundaki anlayışınızı sınayın.

Özet

Scala 3'teki anlamlı girintiyi öğrendiniz.

  • Bloklarda { } yerine girinti kullanılabilir.
  • Denetim yapıları then, do ve yield kullanır.
  • Sınıf/nesne/trait gövdeleri iki nokta : ile açılır.
  • end işaretleri uzun blokları anlaşılır kılar.
  • Her iki biçim birlikte kullanılabilir; boşluklandırmada tutarlı olun.
object Main:
  def main(args: Array[String]): Unit =
    for i <- 1 to 2 do
      if i == 1 then println("first")
      else println("second")
  end main
end Main

Sıkça Sorulan Sorular

“Anlamlı Girintileme” dersi ücretsiz mi?

Evet — “Anlamlı Girintileme” 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.

“Anlamlı Girintileme” dersinde ne öğreneceğim?

İsteğe bağlı süslü parantezler 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.

“Anlamlı Girintileme” 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. Anlamlı Girintileme
  2. Scala 3'te Enum'lar
  3. Opak Türler
  4. Birleşim ve Kesişim Türleri
← Scala for Backend Engineering & Functional Programming Sayfasına Dön