Golang은 애플리케이션을 개발할 때 매우 편리하고 실용적인 효율적이고 현대적인 언어입니다. 이번 글에서는 Golang에서 키보드 입력과 출력을 사용하는 방법을 소개하겠습니다.
1. fmt 패키지를 사용하여 출력
fmt 패키지는 Golang 표준 라이브러리에서 매우 일반적으로 사용되는 패키지이며 많은 유용한 기능을 제공합니다. 여기에는 콘솔에 콘텐츠를 출력하는 것도 포함됩니다. fmt 패키지를 사용하여 출력하는 것은 매우 간단합니다. fmt.Println() 함수를 호출하기만 하면 됩니다.
package main import "fmt" func main() { fmt.Println("Hello, world!") }
이 코드를 실행하면 콘솔에서 "Hello, world!" 출력을 볼 수 있습니다.
2. 입력에는 bufio 패키지를 사용하세요
출력 외에도 입력도 자주 사용하는 기능입니다. Golang은 사용자 입력을 편리하게 읽을 수 있는 bufio 패키지를 제공합니다. 다음은 사용자 입력을 읽고 출력하는 간단한 예입니다.
package main import ( "bufio" "fmt" "os" ) func main() { reader := bufio.NewReader(os.Stdin) fmt.Print("Enter text: ") text, _ := reader.ReadString('\n') fmt.Println("You entered: ", text) }
이 코드에서는 먼저 bufio 패키지와 os 패키지를 가져오고 사용자 입력을 읽기 위해 main 함수에 리더 변수를 생성했습니다. fmt.Print() 함수를 호출하여 프롬프트 정보를 출력하고 사용자 입력을 기다린 후 reader.ReadString() 함수를 사용하여 사용자 입력을 읽습니다. 마지막으로 fmt.Println() 함수를 사용하여 사용자가 입력한 내용을 출력합니다.
3. 더 나은 입력/출력 경험을 제공하기 위해 타사 라이브러리를 사용하세요
위의 방법은 편리하지만 가장 기본적인 입력 및 출력 기능만 구현합니다. 더 나은 사용자 경험이 필요한 경우 타사 라이브러리 사용을 고려할 수 있습니다. 다음은 추천할만한 두 가지 라이브러리입니다.
package main import ( "github.com/gizak/termui/v3" "github.com/gizak/termui/v3/widgets" ) func main() { err := termui.Init() if err != nil { panic(err) } defer termui.Close() p := widgets.NewParagraph() p.Text = "Enter text here:" p.SetRect(0, 0, 25, 3) tb := widgets.NewTextEdit() tb.SetRect(0, 3, 25, 5) termui.Render(p, tb) for e := range termui.PollEvents() { if e.Type == termui.KeyboardEvent { if e.ID == "q" { return } if e.ID == "" { p.Text = "You entered " + tb.Text tb.SetText("") } termui.Render(p, tb) } } }
이 예에서는 termui의 widgets.NewParagraph() 및 widgets.NewTextEdit() 함수를 사용하여 단락 및 텍스트 편집 상자를 만듭니다. Render() 함수는 터미널에서 이러한 구성 요소를 렌더링하는 데 사용됩니다. 또한 사용자 입력을 처리하기 위해 PollEvents() 함수를 사용했습니다. 사용자가 Enter 키를 입력하면 p.Text를 사용하여 프롬프트 정보를 업데이트하고 tb.Text를 사용하여 사용자 입력을 얻습니다.
package main import ( "github.com/jroimartin/gocui" ) func main() { g, err := gocui.NewGui(gocui.OutputNormal) if err != nil { panic(err) } defer g.Close() g.SetManagerFunc(func(g *gocui.Gui) error { if v, err := g.SetView("prompt", 0, 0, 25, 3); err != nil { if err != gocui.ErrUnknownView { return err } v.Title = "Enter text" v.Editable = true v.Wrap = true if _, err := g.Cursor(true); err != nil { return err } if err := g.SetKeybinding("prompt", gocui.KeyEnter, gocui.ModNone, enterHandler); err != nil { return err } if err := v.SetCursor(0, 0); err != nil { return err } } return nil }) if err := g.MainLoop(); err != nil && err != gocui.ErrQuit { panic(err) } } func enterHandler(g *gocui.Gui, v *gocui.View) error { if _, err := g.View("prompt"); err != nil { return err } text := v.Buffer() if err := g.DeleteView("prompt"); err != nil { return err } if _, err := g.SetCurrentView(""); err != nil { return err } g.Update(func(g *gocui.Gui) error { return g.Close() }) println("You entered: ", text) return nil }
이 예에서는 gocui의 gocui.NewGui() 함수를 사용하여 GUI 객체를 생성하고, g.SetManagerFunc() 함수를 사용하여 GUI 인터페이스를 Edit로 설정합니다. 상자. 또한 g.SetKeybinding() 함수를 사용하여 단축키를 설정하고 enterHandler() 함수를 구현하여 사용자 입력을 처리했습니다.
요약:
Golang에서는 키보드 입력과 출력을 사용하는 것이 매우 편리합니다. Golang 표준 라이브러리의 fmt 및 bufio 패키지를 사용하여 기본 입력 및 출력 작업을 완료할 수 있습니다. 더 나은 사용자 경험이 필요한 경우 타사 라이브러리 termui 및 gocui를 사용하여 터미널 GUI를 만들 수도 있습니다.
위 내용은 Golang에서 키보드 입력 및 출력을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!