처음부터 시작 - 사용자 입력 읽기

TLDR; you will learn how to read user input, both a simpler technique and a more advanced one using formatters



콘솔에서 사용자 입력을 읽을 수 있다는 것은 중요한 일입니다. 사용자가 프로그램과 상호 작용할 수 있는 기회를 제공합니다. 고려해야 할 사항은 사용자에게 입력을 요청하는 방법입니다. 한 단어, 여러 입력입니다. 사용자가 입력을 공백이나 개행으로 구분합니까? 어떤 접근 방식을 사용하든 선택한 접근 방식을 사용자에게 전달하십시오.



fmt로 사용자 입력 관리



지금까지 fmt 패키지를 사용하여 콘솔에 인쇄하는 방법을 살펴보았습니다. 사용자 입력을 읽는 데 사용할 수도 있습니다.
fmt 라이브러리에는 사용자 입력을 캡처하는 데 사용할 기본 제공Scan() 메서드가 있습니다.

하나의 입력 읽기



사용자로부터 하나의 입력을 읽고 싶을 수 있습니다. 이것이 Scan() 메서드가 기본적으로 수행하는 작업입니다.

다음은 사용자 입력을 수집하는 방법을 보여주는 코드입니다.

package main

import "fmt"

func main() {
    var response string
    fmt.Scan(&response)
    fmt.Println("User typed: ", response)
}

response 연산자를 사용하여 문자열&을 참조로 보내는 방법에 유의하십시오. Scan() 메서드가 보낸 변수를 수정하므로 이 방식으로 수행됩니다.

이 코드를 실행하면 아래와 같은 출력이 표시됩니다.

hello
User typed: hello


다중 입력 읽기


Scan() 메서드에 여러 인수를 제공할 수 있습니다. 여러 인수를 제공하면 둘 이상의 사용자 입력을 수집하고 Scan() 함수에서 각 입력을 쉼표로 구분할 수 있습니다. 이 기술을 적용하는 방법은 다음과 같습니다.

var a1, a2 string
// multiple input
fmt.Scan(&a1, &a2)

// formatted string to print out the user input
str := fmt.Sprintf("a1: %s a2: %s", a1, a2)

a1a2Scan()로 전송되고 쉼표로 구분되는 방식에 유의하십시오. 그렇다면 그 코드는 어떻게 실행될까요?

이 코드를 실행하면 사용자가 입력할 수 있는 두 가지 방법이 있습니다. 사용자는 다음과 같이 값을 공백으로 구분할 수 있습니다.

hi you
a1: hi a2: you


또는 개행으로:

hi 
you
a1: hi a2: you


Scanf() , 포매터로 입력 스캔



지금까지 공백과 끝선을 구분자로 사용하여 입력을 수집하는 방법을 살펴보았습니다. 입력을 수집하는 방법을 매우 구체적으로 지정할 수도 있습니다. 사용자가 "INV200"또는 "INV114"와 같은 송장 번호를 입력하려고 하는데 관심 있는 부분이 번호 부분이거나 접두사에도 관심이 있다고 상상해 보십시오.

이에 대한 해답은 Scanf()함수에 있다. 포맷터가 필요합니다. 포맷터를 사용하면 관심 있는 사용자 입력 부분을 선택하여 원하는 변수에 배치할 수 있습니다.

위에서 언급한 경우 다음과 같은 코드를 구성할 수 있습니다.

var prefix string
var no int
// in110
fmt.Scanf("%3s%d", &prefix, &no)
fmt.Printf("prefix: %s, invoice no: %d", prefix, no)


흥미로운 부분은 Scanf() 의 첫 번째 인수, 즉 3s%d 에 있습니다. 의미는 처음 3자%3s를 가져와서 문자열로 해석하는 것입니다. 그런 다음 나머지를 숫자%d로 해석하고 배치합니다.

이 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.

inv200
prefix: inv, invoice no: 200


"inv"는 prefix에, 200은 no 변수에 배치됩니다.

더 알아보기



이에 대해 자세히 알아보려면 이 링크https://pkg.go.dev/fmt#Scanf를 확인하십시오.

요약



이 문서에서는 사용자 입력을 읽는 방법을 배웠습니다. 포맷터를 사용하는 고급 기술도 살펴보았습니다.

좋은 웹페이지 즐겨찾기