Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengesan Kekunci Enter dan Backspace dalam Input STDIN Golang?

Bagaimana untuk Mengesan Kekunci Enter dan Backspace dalam Input STDIN Golang?

DDD
DDDasal
2024-11-26 03:21:13259semak imbas

How to Detect Enter and Backspace Keys in Golang STDIN Input?

Cara Mengesan Kunci Khas (Enter, Backspace) dalam Input STDIN Golang

Apabila membaca input pengguna daripada stdin dalam Go, gelagat lalai adalah untuk menangkap semua aksara sehingga aksara akhir baris (cth., kekunci "masuk") ditekan. Untuk mengesan kekunci khas seperti "masuk" atau "ruang belakang" dan melakukan tindakan tertentu, kami perlu mencari cara untuk mentafsir perwakilan bait kunci ini dalam program kami.

Dalam kod asal yang disediakan, yang menangkap pengguna input dalam gelung:

for {
    input += string(b)
}

Pembolehubah b ialah tatasusunan bait bersaiz 1 yang digunakan untuk membaca bait tunggal pada satu masa daripada stdin. Untuk mengenal pasti kunci khas, kita perlu memahami cara kekunci ini diwakili sebagai bait.

Sebagai contoh, kekunci "enter" menjana nilai bait sebanyak 10 (suapan baris), manakala kekunci "backspace" menjana nilai bait 127 (dalam sistem POSIX), atau 8 (ruang belakang).

Untuk mengesan kunci khas ini, kita boleh menggunakan yang lebih maju pendekatan:

package main

import (
    "fmt"
    "os"
    "term"
)

func main() {
    err := term.Init()
    if err != nil {
        panic(err)
    }

    defer term.Close()

    for {
        ev := term.PollEvent()

        switch ev.Type {
        case term.EventKey:
            // Check for special keys
            switch ev.Key {
            case term.KeyEnter:
                fmt.Println("Enter pressed")
            case term.KeyBackspace:
                fmt.Println("Backspace pressed")
            }
        }
    }
}

Dalam kod yang dikemas kini ini:

  • Kami menggunakan istilah perpustakaan untuk mengendalikan acara terminal.
  • Kami menyemak ev.Type untuk menentukan sama ada satu kekunci ditekan.
  • Kami menyemak ev.Key untuk mengenal pasti kekunci yang ditekan.

Dengan menggunakan pendekatan ini, anda kini boleh mengendalikan kekunci khas seperti "masuk" atau "ruang belakang" dan melakukan tindakan tersuai seperti yang diperlukan.

Atas ialah kandungan terperinci Bagaimana untuk Mengesan Kekunci Enter dan Backspace dalam Input STDIN 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