Go REPL에서 키 누르기를 효율적으로 처리하려면 어떻게 해야 합니까?

Mary-Kate Olsen
풀어 주다: 2024-11-28 01:56:13
원래의
410명이 탐색했습니다.

How Can I Handle Keypresses Efficiently in a Go REPL?

Go에서 키 누르기 입력 처리

Go에서 ReadString 함수는 표준 입력에서 문자열을 읽고 반환 키가 눌릴 때까지 기다립니다. 그러나 REPL(읽기-평가-인쇄 루프) 애플리케이션을 구축할 때는 키 누르기 이벤트에 즉시 응답해야 합니다.

대체 접근 방식

ReadString에 의존하는 대신 게임 엔진 사용을 고려해보세요. 플랫폼에 구애받지 않는 키보드 입력 처리를 제공합니다. 그러한 라이브러리 중 하나가 Azul3D의 키보드 라이브러리입니다.

키 누르기 이벤트 모니터링

라이브러리는 모든 키의 상태를 모니터링하는 키보드 감시자를 제공합니다. 감시자에게 상태 맵을 쿼리하면 특정 키가 눌렸는지, 길게 눌렸는지 또는 놓였는지 확인할 수 있습니다.

import (
    "github.com/azul3d/keyboard"
)

func main() {
    watcher := keyboard.NewWatcher()
    status := watcher.States()

    for {
        left := status[keyboard.ArrowLeft]
        if left == keyboard.Down {
            // The arrow left key is being held down.
        }
    }
}
로그인 후 복사

이 코드는 상태 맵을 반복하여 현재 누르고 있는 키를 감지합니다. . 그런 다음 누르고 있는 키에 따라 적절한 작업을 수행할 수 있습니다.

위 내용은 Go REPL에서 키 누르기를 효율적으로 처리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿