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:
Sscanboşluklara göre ayırır;Sscanfbir 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
- Printf Fiilleri
- Sprintf ve Fprintf
- Stringer Arayüzü
- Girdiyi Tarama