Apabila pengguna berinteraksi dengan aplikasi baris arahan, menekan kekunci selalunya memerlukannya untuk menekan Enter untuk menyerahkan input mereka. Walau bagaimanapun, sesetengah senario memerlukan pengecaman aksara segera tanpa kekunci Enter. Bagaimanakah ini boleh dicapai dalam sistem Go for Windows?
Untuk sistem Windows, anda boleh melumpuhkan penimbalan input dan menyembunyikan aksara yang dimasukkan daripada skrin menggunakan langkah berikut:
1. // disable input buffering exec.Command("stty", "-F", "/dev/tty", "cbreak", "min", "1").Run() 2. // do not display entered characters on the screen exec.Command("stty", "-F", "/dev/tty", "-echo").Run()
Dengan arahan ini disediakan, anda boleh menggunakan kod berikut untuk membaca aksara tanpa menekan Masukkan:
var b []byte = make([]byte, 1) for { os.Stdin.Read(b) fmt.Println("I got the byte", b, "("+string(b)+")") }
Apabila anda menjalankan program ini, ia akan memaparkan mesej yang menggesa pengguna untuk menekan sebarang kekunci untuk keluar. Menekan sebarang kekunci akan mencetuskan panggilan os.Stdin.Read(b), yang akan mengembalikan aksara yang ditekan dan memaparkannya pada skrin.
Atas ialah kandungan terperinci Bagaimana untuk Membaca Aksara Tunggal daripada Input Konsol dalam Go Tanpa Menekan Enter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!