Membaca dari Stdin dalam Contoh
Gunakan fmt.scanf untuk membaca input diformat, sesuai untuk data berstruktur mudah, tetapi rentetan dipotong ketika menghadapi ruang; 2. Adalah disyorkan untuk menggunakan bufio.scanner untuk membaca garis demi baris, menyokong input berbilang baris, pengesanan EOF dan input saluran paip, dan boleh mengendalikan kesilapan pengimbasan; 3. Gunakan io.readall (os.stdin) untuk membaca semua input sekaligus, sesuai untuk memproses potongan besar data atau aliran fail; 4. Sambutan utama masa nyata memerlukan perpustakaan pihak ketiga seperti golang.org/x/term, dan Bufio mencukupi untuk senario konvensional; Cadangan Praktikal: Gunakan fmt.scan untuk input mudah interaktif, gunakan bufio.scanner untuk input baris atau saluran paip, gunakan io.readall untuk ketulan besar data, dan sentiasa mengendalikan kesilapan untuk mengelakkan kegagalan senyap.
Dalam GO, membaca data dari input standard ( stdin
) adalah keperluan biasa, seperti membaca input pengguna atau data saluran paip pemprosesan. Berikut adalah beberapa kaedah biasa dan praktikal yang menggabungkan gaya Go by Example
untuk menunjukkan cara membaca kandungan dari stdin
.

1. Baca input diformat menggunakan fmt.Scanf
Sesuai untuk membaca input berstruktur, seperti nombor tunggal atau rentetan.
Pakej utama Import "FMT" func main () { rentetan nama var var umur int fmt.print ("Masukkan Nama dan Umur:") fmt.scanf (" %s %d", & nama, & umur) fmt.printf ("hello %s, anda berumur d Tahun. \ n", nama, umur) }
⚠️ Nota:
Scanf
akan berhenti membaca rentetan ketika menghadapi ruang, yang sesuai untuk senario mudah.
2. Gunakan bufio.Scanner
untuk membaca garis mengikut baris (disyorkan)
Ini adalah kaedah yang paling biasa digunakan, sesuai untuk membaca pelbagai baris input atau pemprosesan EOF
(seperti input saluran paip).
Pakej utama import ( "Bufio" "FMT" "OS" ) func main () { Pengimbas: = Bufio.NewScanner (OS.Stdin) fmt.println ("ENTER TEXT (CTRL D TO END):") untuk scanner.scan () { Talian: = scanner.text () jika garis == "keluar" { rehat } fmt.printf ("Anda masuk: %s \ n", baris) } jika err: = scanner.err (); err! = nil { fmt.fprintln (os.stderr, "Membaca input standard:", err) } }
✅ Kelebihan:
- Menyokong bacaan mengikut baris
- Sesuai dengan input terminal dan saluran paip (seperti
echo "hello" | go run main.go
)EOF
yang dapat dikesan (Ctrl D pada UNIX, Ctrl Z pada Windows)
3. Baca semua input sekaligus (sesuai untuk memproses fail atau potongan besar data)
Baca keseluruhan kandungan stdin
menggunakan io.ReadAll
.
Pakej utama import ( "FMT" "io" "OS" ) func main () { fmt.println ("Kandungan tampal (ctrl d hingga selesai):") data, err: = io.readall (os.stdin) jika err! = nil { fmt.fprintln (os.stderr, "Input membaca ralat:", err) Kembali } fmt.printf ("baca %d bytes: \ n %s", len (data), data) }
? Senario yang terpakai:
- Proses input lengkap JSON, fail konfigurasi, dll.
- Gunakan dengan saluran paip, seperti
cat data.txt | go run main.go
4. Baca watak tunggal atau input yang tidak buffer
Jika anda perlu bertindak balas terhadap kunci dalam masa nyata (seperti permainan atau alat interaktif), anda boleh menggunakan panggilan peringkat sistem, tetapi perpustakaan standard tidak menyokongnya secara langsung. Anda boleh menggunakan perpustakaan pihak ketiga seperti golang.org/x/term
.
Walau bagaimanapun, untuk bacaan stdin biasa, bufio
mencukupi.
Cadangan penggunaan praktikal
- Input interaktif : Gunakan
fmt.Scan
ataufmt.Scanf
untuk mendapatkan nilai mudah dengan cepat. - Input garis atau pemprosesan saluran paip : Gunakan
bufio.Scanner
terlebih dahulu. - Potongan besar data atau aliran fail : Gunakan
io.ReadAll(os.Stdin)
. - Ingatlah untuk berurusan dengan
scanner.Err()
danerror
untuk mengelakkan kegagalan senyap.
Pada dasarnya cara biasa ini. Perpustakaan standard Go adalah mudah dan cekap, dan dengan mudah boleh mengendalikan kebanyakan senario input dengan os.Stdin
.
Atas ialah kandungan terperinci Membaca dari Stdin dalam Contoh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

ChecksearchSettingslike "MatchentireCellContents" dan "MatchCase" byExpandingOptionsInfindandReplace, memastikan "lookin" issettovaluesand "dalam" tocorrectscope; 2.lookforhiddencharactersorformattingbycopytextdirectly

PreparyourapplicationByusingMavenorgradletobuildajarorwarfile, externalizingConfiguration.2.Chooseadeploymentenvironment: runonbaremetal/vmwithjava-jarandsystemd, deploywarontomcat, containerizeWithdoStloStLoThoStLoThoStLoThoStLoThoStLoUsToStLoUsToStLoUsToStLours.

Menggunakan SLF4J yang digabungkan dengan Logback atau Log4J2 adalah cara yang disyorkan untuk mengkonfigurasi log dalam aplikasi Java. Ia memperkenalkan API dan perpustakaan pelaksanaan dengan menambahkan kebergantungan Maven yang sepadan; 2. Dapatkan logger melalui loggerfactory SLF4J dalam kod, dan tulis kod log yang dihancurkan dan cekap menggunakan kaedah pembalakan parameter; 3. Tentukan Format Output Log, Tahap, Sasaran (Konsol, Fail) dan Kawalan Log Tahap Pakej melalui fail konfigurasi logback.xml atau log4j2.xml; 4. Secara pilihan membolehkan fungsi pengimbasan fail konfigurasi untuk mencapai pelarasan dinamik tahap log, dan springboot juga boleh diuruskan melalui titik akhir penggerak; 5. Ikuti amalan terbaik, termasuk

Castorenablesxml-to-javaobjectmappingviadefaultconventionsorexplicitmappingfiles; 1) definejavaclasswithgetters/setters; 2) useunmarshallertoconvertxmltoobjects;

Dalam JavaScript, kaedah yang paling biasa untuk menambah unsur -unsur ke permulaan array adalah dengan menggunakan kaedah unshift (); 1. Menggunakan UNSHIFT () akan secara langsung mengubah suai array asal, anda boleh menambah satu atau lebih elemen untuk mengembalikan panjang baru array tambahan; 2. Jika anda tidak mahu mengubah suai array asal, disyorkan untuk menggunakan pengendali lanjutan (seperti [NewElement, ... ARR]) untuk membuat array baru; 3. Anda juga boleh menggunakan kaedah Concat () untuk menggabungkan array elemen baru dengan nombor asal, mengembalikan array baru tanpa menukar array asal; Ringkasnya, gunakan unshift () apabila mengubah suai array asal, dan mengesyorkan pengendali lanjutan apabila mengekalkan array asal tidak berubah.

GotypicallyoffersbetterruntimeperformanceWithhightherthroughputandlowerlatency, terutama sekali-sekala/o-heavyservices, duetoitslightweightgoroutinesandeficientscheduler, whentjava, wifklowertostart, canmatchgoincpu-boundsafterjitoptimization.2.

TOWORKWITHJSONINJAVA, USEATHIRD-PARTYLIBRARYLIKEJACKSON, GSON, ORJSON-B, ASJAVALACKSBUILT-Insupport;

TheassertkeywordinJavaisusedtovalidateassumptionsduringdevelopment,throwinganAssertionErroriftheconditionisfalse.2.Ithastwoforms:assertcondition;andassertcondition:message;withthelatterprovidingacustomerrormessage.3.Assertionsaredisabledbydefaultandm
