在 Golang 中偵測鍵盤輸入
直接從終端讀取使用者輸入時,識別 Enter 和 Backspace 等特殊鍵是一個挑戰。本文解釋如何在 Go 中確定這些鍵的位元組數組或字串表示形式。
使用「cbreak」標誌,可以逐字讀取使用者輸入。然而,像 Enter 和 Backspace 這樣的特殊鍵沒有明顯的位元組值。為了解決這個問題,我們可以利用提供偵測特定按鍵機制的函式庫。
使用 Term
處理終端輸入的一個流行庫是「term」。使用 Term,我們可以定義一個輪詢按鍵的循環。每個按鍵事件都包含有關按下的按鍵的信息,可以輕鬆識別特殊按鍵。
提供的範例示範如何使用 ev.Key 和 ev 擷取各種按鍵,包括 F1、Enter 和 Backspace。按鍵事件的 Ch 欄位。這使我們能夠有條件地處理程式中的不同輸入。
使用 Bufio
另一種方法是使用「bufio」套件。雖然此方法一次讀取一個字符,但特殊鍵可能難以檢測。然而,某些 ascii 值可以被辨識來指示按鍵。例如,Enter 的 ascii 值為 10,而 Backspace 的 ascii 值為 8。
使用「bufio」套件,我們可以定義一個循環來讀取單一字元。透過檢查 ascii 值,我們可以在識別特殊鍵時執行特定操作。
自訂實作
如果上述方法無法滿足您的需求,可以建立自訂實作。這涉及存取底層作業系統的終端介面並對輸入資料進行解碼以識別唯一的按鍵組合。
以上是如何在 Golang 中偵測特殊鍵盤按鍵(Enter、Backspace 等)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!