Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Membaca Aksara Tunggal daripada Input Standard Serta-merta dalam Go?

Bagaimanakah Saya Boleh Membaca Aksara Tunggal daripada Input Standard Serta-merta dalam Go?

Patricia Arquette
Patricia Arquetteasal
2024-12-13 14:17:14868semak imbas

How Can I Read Single Characters from Standard Input Instantly in Go?

Baca Aksara daripada Input Standard Serta-merta dalam Go

Dalam Go, membaca daripada input standard biasanya memerlukan menekan Enter untuk menerima input. Walau bagaimanapun, jika anda mahu aplikasi anda bertindak balas dengan segera kepada mana-mana penekan kekunci, sama seperti Console.ReadKey() dalam C#, penyelesaian berikut boleh mencapainya.

Kod yang disediakan melumpuhkan penimbalan input menggunakan arahan stty, memastikan bahawa ketukan kekunci diproses serta-merta. Gema aksara juga dihalang untuk menghalang input dipaparkan.

Ini kodnya:

package main

import (
    "fmt"
    "os"
    "os/exec"
)

func main() {
    // Disable input buffering
    exec.Command("stty", "-F", "/dev/tty", "cbreak", "min", "1").Run()
    // Suppress input echoing
    exec.Command("stty", "-F", "/dev/tty", "-echo").Run()

    var b []byte = make([]byte, 1)
    for {
        os.Stdin.Read(b)
        fmt.Println("I got the byte", b, "("+string(b)+")")
    }
}

Apabila kod ini berjalan, menekan sebarang kekunci serta-merta mengembalikan perwakilan bait aksara dan aksara yang sepadan ke konsol .

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Aksara Tunggal daripada Input Standard Serta-merta dalam Go?. 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