>  기사  >  백엔드 개발  >  Golang에서 키보드 입력 및 출력을 사용하는 방법

Golang에서 키보드 입력 및 출력을 사용하는 방법

PHPz
PHPz원래의
2023-04-11 09:14:012181검색

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. 더 나은 입력/출력 경험을 제공하기 위해 타사 라이브러리를 사용하세요

위의 방법은 편리하지만 가장 기본적인 입력 및 출력 기능만 구현합니다. 더 나은 사용자 경험이 필요한 경우 타사 라이브러리 사용을 고려할 수 있습니다. 다음은 추천할만한 두 가지 라이브러리입니다.

  1. termui
    termui는 Golang 애플리케이션을 더욱 전문적으로 보이게 만드는 많은 유용한 UI 구성 요소를 제공하는 터미널 기반 사용자 인터페이스 라이브러리입니다. 다음은 termui를 사용하여 구현한 간단한 예입니다.
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 == "<Enter>" {
                p.Text = "You entered " + tb.Text
                tb.SetText("")
            }
            termui.Render(p, tb)
        }
    }
}

이 예에서는 termui의 widgets.NewParagraph() 및 widgets.NewTextEdit() 함수를 사용하여 단락 및 텍스트 편집 상자를 만듭니다. Render() 함수는 터미널에서 이러한 구성 요소를 렌더링하는 데 사용됩니다. 또한 사용자 입력을 처리하기 위해 PollEvents() 함수를 사용했습니다. 사용자가 Enter 키를 입력하면 p.Text를 사용하여 프롬프트 정보를 업데이트하고 tb.Text를 사용하여 사용자 입력을 얻습니다.

  1. gocui
    gocui는 터미널 GUI를 생성하기 위한 또 다른 라이브러리입니다. 창, 입력 상자, 버튼 등과 같은 몇 가지 일반적인 GUI 구성 요소를 제공합니다. 다음은 gocui를 사용하여 구현한 간단한 예입니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.