Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Saya Boleh Membaca Penekanan Papan Kekunci Individu dalam Go Tanpa Menunggu Pemulangan?
Mengendalikan input papan kekunci dalam Go menimbulkan cabaran yang unik kerana fungsi ReadString standard memerlukan kekunci kembali untuk ditekan sebelum membaca input. Untuk mengatasi had ini, pendekatan alternatif diperlukan untuk menangkap peristiwa penekan kekunci secara individu.
Satu penyelesaian yang menjanjikan terletak pada memanfaatkan perpustakaan enjin permainan, seperti perpustakaan papan kekunci Azul3D. Enjin permainan selalunya menyediakan pengendalian input agnostik platform, membolehkan anda mendaftarkan panggilan balik untuk pelbagai ketukan kekunci.
Sebagai contoh, menggunakan pustaka papan kekunci, anda boleh membuat pemerhati yang memantau keadaan semua kekunci:
watcher := keyboard.NewWatcher()
Seterusnya, anda boleh bertanya kepada pemerhati untuk mendapatkan keadaan kunci tertentu, seperti anak panah kiri kekunci:
status := watcher.States() left := status[keyboard.ArrowLeft]
Jika kekunci ditekan ke bawah, keadaan akan ditetapkan kepada "Ke Bawah":
if left == keyboard.Down { // The arrow to left is being held down // Do something! }
Dengan mengulangi peta yang dikembalikan oleh pemerhati, anda boleh kenal pasti semua kekunci yang sedang ditekan dan balas dengan sewajarnya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Penekanan Papan Kekunci Individu dalam Go Tanpa Menunggu Pemulangan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!