0Pricing
Go Academy · Ders

Girdiyi Tarama

Biçimlendirilmiş girdiyi okuyun

Girdiyi Tarama, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 4. 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, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.

fmt ile Girdi Okuma

fmt paketi yalnızca değerleri yazdırmaz, onları okuyabilir de. Tarama işlevleri metni türü belirlenmiş değişkenlere ayrıştırır.

Bunlar, yazdırma işlevlerinin tersidir.

package main

import "fmt"

func main() {
    var n int
    fmt.Sscan("42", &n)
    fmt.Println(n + 1)
}

İşaretçiler Gereklidir

Tarama işlevleri bir sonucu depolamalıdır; bu nedenle her değişkenin adresini & kullanarak iletirsiniz.

& işaretini unutmak, tarama sırasında en sık yapılan hatadır.

package main

import "fmt"

func main() {
    var a, b int
    fmt.Sscan("3 4", &a, &b)
    fmt.Println(a + b)
}

Sscan Boşluklarda Ayırır

fmt.Sscan, bir dizedeki boşluklarla ayrılmış değerleri birden çok değişkene okur ve türü her işaretçiden belirler.

package main

import "fmt"

func main() {
    var name string
    var age int
    fmt.Sscan("Ada 36", &name, &age)
    fmt.Println(name, age)
}

Sscanf Bir Biçim Kullanır

fmt.Sscanf, tıpkı tersine çalışan bir Printf gibi bir biçim dizesine göre ayrıştırma yapar. Biçimdeki değişmez karakterler girdide eşleşmelidir.

package main

import "fmt"

func main() {
    var h, m int
    fmt.Sscanf("09:05", "%d:%d", &h, &m)
    fmt.Println(h, m)
}

Kaç Tanesinin Okunduğunu Denetleme

Tarama işlevleri, başarıyla ayrıştırılan öğelerin sayısını ve bir hatayı döndürür. Ayrıştırmanın tamamen başarılı olup olmadığını anlamak için sayıyı denetleyin.

package main

import "fmt"

func main() {
    var a, b int
    count, _ := fmt.Sscan("7", &a, &b)
    fmt.Println("parsed:", count)
}

Ayrıştırma Hatalarını Ele Alma

Girdi beklenen türle eşleşmiyorsa bir hata döndürülür. Gerçek girdilerde bu hatayı mutlaka inceleyin.

package main

import "fmt"

func main() {
    var n int
    _, err := fmt.Sscan("notanumber", &n)
    if err != nil {
        fmt.Println("error:", err)
    }
}

Farklı Türleri Ayrıştırma

Tek bir çağrıda birkaç farklı tür okuyabilirsiniz. Her işaretçinin türü, kendi belirtecinin nasıl ayrıştırılacağını belirler.

package main

import "fmt"

func main() {
    var word string
    var price float64
    var ok bool
    fmt.Sscan("apple 1.50 true", &word, &price, &ok)
    fmt.Println(word, price, ok)
}

Sabit Metinle Sscanf

Sscanf; noktalama işaretlerinin sayıları ayırdığı koordinatlar veya anahtar-değer çiftleri gibi sabit biçimler için çok kullanışlıdır.

package main

import "fmt"

func main() {
    var x, y int
    fmt.Sscanf("(3,8)", "(%d,%d)", &x, &y)
    fmt.Println(x, y)
}

Kayan Noktalı Sayıları Okuma

Ondalık sayıları okumak için Sscanf içinde %f veya Sscan içinde bir *float64 kullanın.

package main

import "fmt"

func main() {
    var temp float64
    fmt.Sscanf("21.5C", "%fC", &temp)
    fmt.Println(temp)
}

Scan ve Standart Girdi

fmt.Scan ve fmt.Scanf, Sscan'in bir dizeden okuduğu gibi standart girdiden okur. Ayrıştırma kuralları aynıdır; yalnızca kaynak farklıdır.

package main

import "fmt"

func main() {
    line := "100 200"
    var a, b int
    fmt.Sscan(line, &a, &b)
    fmt.Println(a * b)
}

Küçük Bir Ayrıştırıcı

Bir kaydı ayrıştırıp sonuç üretmek için taramayı bir hesaplamayla birleştirin.

package main

import "fmt"

func main() {
    var name string
    var qty int
    var unit float64
    fmt.Sscanf("pen 3 1.25", "%s %d %f", &name, &qty, &unit)
    fmt.Printf("%s total: $%.2f\n", name, float64(qty)*unit)
}

Hızlı Kontrol

Sonucu depolamak için bir tarama işlevine ne iletmelisiniz?

Özet: Girdi Taraması

Biçimlendirilmiş girdiyi okumayı öğrendiniz:

  • Sscan boşluklara göre ayırır; Sscanf bir biçim dizesini izler.
  • Her hedef için & ile işaretçiler iletin.
  • Hatalı girdiyi belirlemek için döndürülen sayıyı ve hatayı denetleyin.
package main

import "fmt"

func main() {
    var d, mo, y int
    fmt.Sscanf("30/05/2026", "%d/%d/%d", &d, &mo, &y)
    fmt.Println(y, mo, d)
}

Sıkça Sorulan Sorular

“Girdiyi Tarama” dersi ücretsiz mi?

Evet — “Girdiyi Tarama” 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 Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.

“Girdiyi Tarama” dersinde ne öğreneceğim?

Biçimlendirilmiş girdiyi okuyun Go Academy 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.

Go Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Go Academy, 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 4. dersidir.

“Girdiyi Tarama” 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 Go Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Go Academy 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. Printf Fiilleri
  2. Sprintf ve Fprintf
  3. Stringer Arayüzü
  4. Girdiyi Tarama
← Go Academy Sayfasına Dön