> 백엔드 개발 > Golang > GoLang에서 스캔하는 방법

GoLang에서 스캔하는 방법

Susan Sarandon
풀어 주다: 2025-01-05 14:51:44
원래의
487명이 탐색했습니다.

How to Scan in GoLang

Go(golang)에서 fmt 패키지는 콘솔이나 기타 입력 소스의 입력을 검색하기 위한 여러 기능을 제공합니다.

저에게 있어 이러한 기능은 테스트 및 기타 여러 분야에서 항상 유용했습니다. 그리고 지금까지 저는 스캐닝을 할 때 주로 4가지 기능을 사용하여 작업합니다.

그 중 일부를 살펴보고 언제, 어떻게, 왜 사용하는지 살펴보겠습니다.


1. fmt.스캔

  • 목적: 표준 입력(콘솔)에서 공백으로 구분된 입력을 읽습니다.
  • 읽기 중지: 첫 번째 줄 바꿈 또는 공백에서 중지합니다.
  • 다중 변수: 한 번의 호출로 여러 변수를 읽을 수 있습니다.
  • 반품: 성공적으로 스캔된 항목 수 및 오류가 있는 경우

예:

package main

import (
    "fmt"
)

func main() {
    var name string
    var age int
    fmt.Print("Enter your name and age: ")
    fmt.Scan(&name, &age) // Reading input separated by space
    fmt.Printf("Hello %s, you are %d years old.\n", name, age)
}
로그인 후 복사
로그인 후 복사

입력 예:

앨리스 25

출력:

Hello Alice, you are 25 years old.
로그인 후 복사
로그인 후 복사
로그인 후 복사

2. fmt.Scanln

  • 목적: 줄 바꿈(n)이 나타날 때까지 입력을 읽습니다.
  • 읽기 중지: 공백 대신 줄바꿈에서 중지합니다.
  • 다중 변수: 여러 변수를 읽을 수 있지만 먼저 개행에 도달하면 중지됩니다.
  • 반품: 성공적으로 스캔된 항목 수 및 오류가 있는 경우

예:

package main

import (
    "fmt"
)

func main() {
    var name string
    var age int
    fmt.Print("Enter your name and age: ")
    fmt.Scanln(&name, &age) // Reads until newline is encountered
    fmt.Printf("Hello %s, you are %d years old.\n", name, age)
}
로그인 후 복사

입력 예:

앨리스 25

출력:

Hello Alice, you are 25 years old.
로그인 후 복사
로그인 후 복사
로그인 후 복사

3. fmt.Scanf

  • 목적: 형식 지정자(%s, %d, %f 등)를 사용하여 형식화된 입력을 읽습니다.
  • 읽기 중지: 지정된 형식에 따라 중지합니다.
  • 다중 변수: 형식 지정자를 사용하여 정밀한 제어로 여러 변수를 읽을 수 있습니다.
  • 반품: 성공적으로 스캔된 항목 수 및 오류가 있는 경우

예:

package main

import (
    "fmt"
)

func main() {
    var name string
    var age int
    fmt.Print("Enter your name and age (formatted): ")
    fmt.Scanf("%s %d", &name, &age) // Reads formatted input
    fmt.Printf("Hello %s, you are %d years old.\n", name, age)
}
로그인 후 복사

입력 예:

앨리스 25

출력:

Hello Alice, you are 25 years old.
로그인 후 복사
로그인 후 복사
로그인 후 복사

4. bufio.NewReader(고급 입력 처리용)

  • 목적: fmt에 비해 더욱 향상된 입력 읽기 기능을 제공합니다.
  • 읽기 중지: 공백을 포함하여 전체 줄을 읽을 수 있습니다.
  • 다중 변수: 입력을 단일 문자열로 읽은 다음 필요한 경우 추가로 분할할 수 있습니다.
  • 반환: 전체 입력 줄을 문자열로 표시합니다.

예:

package main

import (
    "bufio"
    "fmt"
    "os"
    "strings"
)

func main() {
    reader := bufio.NewReader(os.Stdin)
    fmt.Print("Enter your name and age: ")
    input, _ := reader.ReadString('\n') // Reads entire line including spaces
    input = strings.TrimSpace(input)    // Trim newline and spaces
    fmt.Printf("You entered: %s\n", input)
}
로그인 후 복사

입력 예:

앨리스 25

출력:

package main

import (
    "fmt"
)

func main() {
    var name string
    var age int
    fmt.Print("Enter your name and age: ")
    fmt.Scan(&name, &age) // Reading input separated by space
    fmt.Printf("Hello %s, you are %d years old.\n", name, age)
}
로그인 후 복사
로그인 후 복사

? 요약표:

Function Purpose Stops Reading At Supports Formatting? Multiple Variables? Use Case
fmt.Scan Basic scanning Whitespace Simple input without newline
fmt.Scanln Scans until newline Newline (n) Input until newline
fmt.Scanf Formatted input scanning Controlled by format Precise formatted input
bufio.NewReader Advanced input handling Customizable Large input with spaces
함수 목적 읽기 중지 포맷 지원 여부 여러 변수? 사용 사례 fmt.스캔 기본 스캔 공백 ❌ ✅ 줄바꿈 없이 간단한 입력 fmt.Scanln 개행까지 스캔 줄바꿈(n) ❌ ✅ 개행까지 입력 fmt.Scanf 형식화된 입력 검색 형식에 따라 제어 ✅ ✅ 정확한 형식의 입력 bufio.NewReader 고급 입력 처리 맞춤설정 가능 ✅ ❌ 공백이 포함된 큰 입력

위 내용은 GoLang에서 스캔하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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