> 백엔드 개발 > Golang > Go에서 반환을 기다리지 않고 개별 키보드 키 누르기를 어떻게 읽을 수 있습니까?

Go에서 반환을 기다리지 않고 개별 키보드 키 누르기를 어떻게 읽을 수 있습니까?

Linda Hamilton
풀어 주다: 2024-11-26 07:45:11
원래의
316명이 탐색했습니다.

How Can I Read Individual Keyboard Keypresses in Go Without Waiting for Return?

Go에서 키보드 입력 읽기

Go에서 키보드 입력을 처리하는 것은 표준 ReadString 함수에서 입력을 읽기 전에 Return 키를 눌러야 하므로 독특한 과제를 제기합니다. 이러한 한계를 극복하려면 키 누르기 이벤트를 개별적으로 캡처하는 대체 접근 방식이 필요합니다.

유망한 솔루션 중 하나는 Azul3D의 키보드 라이브러리와 같은 게임 엔진 라이브러리를 활용하는 것입니다. 게임 엔진은 플랫폼에 구애받지 않는 입력 처리 기능을 제공하여 다양한 키 입력에 대한 콜백을 등록할 수 있습니다.

예를 들어 키보드 라이브러리를 사용하면 모든 키의 상태를 모니터링하는 감시자를 만들 수 있습니다.

watcher := keyboard.NewWatcher()
로그인 후 복사

이후 감시자에게 쿼리하여 왼쪽 화살표와 같은 특정 키의 상태를 얻을 수 있습니다. key:

status := watcher.States()
left := status[keyboard.ArrowLeft]
로그인 후 복사

키를 누르고 있으면 상태가 "Down"으로 설정됩니다.

if left == keyboard.Down {
    // The arrow to left is being held down
    // Do something!
}
로그인 후 복사

감시자가 반환한 지도를 반복하여 다음을 수행할 수 있습니다. 현재 누르고 있는 모든 키를 식별하고 그에 따라 응답합니다.

위 내용은 Go에서 반환을 기다리지 않고 개별 키보드 키 누르기를 어떻게 읽을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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