Rumah >pembangunan bahagian belakang >Golang >Cara Mengimbas dalam GoLang

Cara Mengimbas dalam GoLang

Susan Sarandon
Susan Sarandonasal
2025-01-05 14:51:44545semak imbas

How to Scan in GoLang

Dalam Go (golang), pakej fmt menyediakan beberapa fungsi untuk mengimbas input daripada konsol atau sumber input lain.

Bagi saya ini sentiasa berguna semasa ujian dan banyak lagi bidang lain. Dan setakat ini saya biasanya bekerja dengan 4 fungsi semasa pengimbasan.

Mari kita terokai sebahagian daripadanya dan lihat cara, sebab dan bila untuk menggunakannya.


1. fmt.Imbas

  • Tujuan: Membaca input yang diasingkan ruang daripada input standard (konsol).
  • Berhenti Membaca: Berhenti pada baris baharu atau ruang putih yang pertama.
  • Berbilang Pembolehubah: Boleh membaca berbilang pembolehubah dalam satu panggilan.
  • Pemulangan: Bilangan item yang berjaya diimbas dan ralat jika ada.

Contoh:

package main

import (
    "fmt"
)

func main() {
    var name string
    var age int
    fmt.Print("Enter your name and age: ")
    fmt.Scan(&name, &age) // Reading input separated by space
    fmt.Printf("Hello %s, you are %d years old.\n", name, age)
}

Contoh Input:

Alice 25

Output:

Hello Alice, you are 25 years old.

2. fmt.Scanln

  • Tujuan: Membaca input sehingga baris baharu (n) ditemui.
  • Berhenti Membaca: Berhenti pada baris baharu dan bukannya ruang putih.
  • Berbilang Pembolehubah: Boleh membaca berbilang pembolehubah tetapi berhenti jika ia mencapai baris baharu dahulu.
  • Pemulangan: Bilangan item yang berjaya diimbas dan ralat jika ada.

Contoh:

package main

import (
    "fmt"
)

func main() {
    var name string
    var age int
    fmt.Print("Enter your name and age: ")
    fmt.Scanln(&name, &age) // Reads until newline is encountered
    fmt.Printf("Hello %s, you are %d years old.\n", name, age)
}

Contoh Input:

Alice 25

Output:

Hello Alice, you are 25 years old.

3. fmt.Scanf

  • Tujuan: Membaca input berformat menggunakan penentu format (seperti %s, %d, %f).
  • Berhenti Membaca: Berhenti berdasarkan format yang ditentukan.
  • Berbilang Pembolehubah: Boleh membaca berbilang pembolehubah dengan kawalan yang tepat menggunakan penentu format.
  • Pemulangan: Bilangan item yang berjaya diimbas dan ralat jika ada.

Contoh:

package main

import (
    "fmt"
)

func main() {
    var name string
    var age int
    fmt.Print("Enter your name and age (formatted): ")
    fmt.Scanf("%s %d", &name, &age) // Reads formatted input
    fmt.Printf("Hello %s, you are %d years old.\n", name, age)
}

Contoh Input:

Alice 25

Output:

Hello Alice, you are 25 years old.

4. bufio.NewReader (Untuk Pengendalian Input Lanjutan)

  • Tujuan: Menyediakan keupayaan membaca input yang lebih maju berbanding fmt.
  • Berhenti Membaca: Membenarkan membaca keseluruhan baris termasuk ruang.
  • Berbilang Pembolehubah: Membaca input sebagai rentetan tunggal dan kemudian boleh dipisahkan lagi jika perlu.
  • Pulangan: Baris input lengkap sebagai rentetan.

Contoh:

package main

import (
    "bufio"
    "fmt"
    "os"
    "strings"
)

func main() {
    reader := bufio.NewReader(os.Stdin)
    fmt.Print("Enter your name and age: ")
    input, _ := reader.ReadString('\n') // Reads entire line including spaces
    input = strings.TrimSpace(input)    // Trim newline and spaces
    fmt.Printf("You entered: %s\n", input)
}

Contoh Input:

Alice 25

Output:

package main

import (
    "fmt"
)

func main() {
    var name string
    var age int
    fmt.Print("Enter your name and age: ")
    fmt.Scan(&name, &age) // Reading input separated by space
    fmt.Printf("Hello %s, you are %d years old.\n", name, age)
}

? Jadual Ringkasan:

Function Purpose Stops Reading At Supports Formatting? Multiple Variables? Use Case
fmt.Scan Basic scanning Whitespace Simple input without newline
fmt.Scanln Scans until newline Newline (n) Input until newline
fmt.Scanf Formatted input scanning Controlled by format Precise formatted input
bufio.NewReader Advanced input handling Customizable Large input with spaces
Fungsi Tujuan Berhenti Membaca Di Menyokong Pemformatan? Berbilang Pembolehubah? Kes Penggunaan fmt.Scan Pengimbasan asas Ruang putih ❌ ✅ Input ringkas tanpa baris baharu fmt.Scanln Mengimbas sehingga baris baharu Barisan baharu (n) ❌ ✅ Input sehingga baris baharu fmt.Scanf Pengimbasan input berformat Dikawal mengikut format ✅ ✅ Input berformat tepat bufio.NewReader Pengendalian input lanjutan Boleh disesuaikan ✅ ❌ Input besar dengan ruang

Atas ialah kandungan terperinci Cara Mengimbas dalam GoLang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn