Memindai Input
Baca input berformat
Memindai Input adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.
Membaca Masukan dengan fmt
Paket fmt dapat membaca nilai, bukan hanya mencetaknya. Fungsi pemindaian mengurai teks menjadi variabel bertipe.
Fungsi-fungsi tersebut merupakan kebalikan dari fungsi pencetakan.
package main
import "fmt"
func main() {
var n int
fmt.Sscan("42", &n)
fmt.Println(n + 1)
}Penunjuk Wajib Digunakan
Fungsi pemindaian harus menyimpan hasil, jadi Anda harus memberikan alamat setiap variabel menggunakan &.
Lupa menambahkan & merupakan kesalahan pemindaian yang paling umum.
package main
import "fmt"
func main() {
var a, b int
fmt.Sscan("3 4", &a, &b)
fmt.Println(a + b)
}Sscan Memisahkan Berdasarkan Spasi
fmt.Sscan membaca nilai yang dipisahkan spasi dari sebuah teks ke dalam beberapa variabel, dengan menentukan tipe dari setiap penunjuk.
package main
import "fmt"
func main() {
var name string
var age int
fmt.Sscan("Ada 36", &name, &age)
fmt.Println(name, age)
}Sscanf Menggunakan Format
fmt.Sscanf mengurai sesuai teks format, seperti Printf secara terbalik. Karakter harfiah dalam format harus cocok dengan masukan.
package main
import "fmt"
func main() {
var h, m int
fmt.Sscanf("09:05", "%d:%d", &h, &m)
fmt.Println(h, m)
}Memeriksa Jumlah yang Dibaca
Fungsi pemindaian mengembalikan jumlah item yang berhasil diurai dan sebuah galat. Periksa jumlah tersebut untuk mengetahui apakah penguraian berhasil sepenuhnya.
package main
import "fmt"
func main() {
var a, b int
count, _ := fmt.Sscan("7", &a, &b)
fmt.Println("parsed:", count)
}Menangani Galat Penguraian
Jika masukan tidak sesuai dengan tipe yang diharapkan, sebuah galat dikembalikan. Selalu periksa galat tersebut untuk masukan nyata.
package main
import "fmt"
func main() {
var n int
_, err := fmt.Sscan("notanumber", &n)
if err != nil {
fmt.Println("error:", err)
}
}Mengurai Tipe Campuran
Anda dapat membaca beberapa tipe yang berbeda dalam satu pemanggilan. Tipe setiap penunjuk menentukan cara tokennya diurai.
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)
}Sscanf dengan Teks Harfiah
Sscanf sangat cocok untuk bentuk tetap seperti koordinat atau pasangan kunci-nilai, yang tanda bacanya memisahkan angka.
package main
import "fmt"
func main() {
var x, y int
fmt.Sscanf("(3,8)", "(%d,%d)", &x, &y)
fmt.Println(x, y)
}Membaca Bilangan Pecahan
Gunakan %f dalam Sscanf atau *float64 dalam Sscan untuk membaca bilangan desimal.
package main
import "fmt"
func main() {
var temp float64
fmt.Sscanf("21.5C", "%fC", &temp)
fmt.Println(temp)
}Pemindaian vs Masukan Standar
fmt.Scan dan fmt.Scanf membaca dari masukan standar dengan cara yang sama seperti Sscan membaca dari teks. Aturan penguraiannya identik; hanya sumbernya yang berbeda.
package main
import "fmt"
func main() {
line := "100 200"
var a, b int
fmt.Sscan(line, &a, &b)
fmt.Println(a * b)
}Pengurai Sederhana
Gabungkan pemindaian dengan perhitungan untuk mengurai sebuah rekaman dan menghasilkan suatu hasil.
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)
}Pemeriksaan Singkat
Apa yang harus Anda berikan kepada fungsi pemindaian untuk menyimpan hasilnya?
Ringkasan: Memindai Masukan
Anda telah mempelajari cara membaca masukan berformat:
Sscanmemisahkan berdasarkan spasi kosong;Sscanfmengikuti teks format.- Berikan penunjuk dengan
&untuk setiap tujuan. - Periksa jumlah dan galat yang dikembalikan untuk mendeteksi masukan yang tidak valid.
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)
}Belajar Go dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Memindai Input” gratis?
Ya — teks lengkap “Memindai Input” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Memindai Input”?
Baca input berformat Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Go Academy?
Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Memindai Input” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Kata Kerja Printf
- Sprintf dan Fprintf
- Interface Stringer
- Memindai Input