如何偵測Golang STDIN 輸入中的特殊鍵(Enter、Backspace)
從Go 中的stdin 讀取使用者輸入時,預設行為是捕捉所有字符,直到按下行尾字符(例如“enter”鍵)。為了偵測「enter」或「backspace」等特殊鍵並執行特定操作,我們需要找到一種方法來解釋程式中這些鍵的位元組表示。
在提供的原始程式碼中,它捕獲了用戶循環輸入:
for { input += string(b) }
變數b 是一個大小為1 的位元組數組,用於從stdin 一次讀取一個字節。為了識別特殊鍵,我們需要了解這些鍵如何表示為位元組。
例如,「enter」鍵產生一個位元組值 10(換行),而「backspace」鍵產生一個位元組值位元組值 127(在 POSIX 系統中)或 8(退格鍵)。
要檢測這些特殊鍵,我們可以使用更高級的方法:
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") } } } }
在此更新的程式碼中:
透過使用此方法,您現在可以處理「enter」或「backspace」等特殊鍵,並根據需要執行自訂操作。
以上是如何偵測 Golang STDIN 輸入中的 Enter 和 Backspace 鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!