목차
fmt.Scan
语法
代码示例
fmt.Scanf
fmt.Scanln
fmt.Scan
구문
코드 예
🎜fmt.Scanf🎜
🎜fmt.Scanln🎜
백엔드 개발 Golang Go 언어에서 스캔 방법의 용도는 무엇입니까?

Go 언어에서 스캔 방법의 용도는 무엇입니까?

Mar 15, 2021 pm 04:46 PM
언어로 가다 scan

go 언어에서는 Scan() 메서드를 사용하여 표준 입력 "os.Stdin"에서 텍스트를 읽습니다. 즉, 터미널에서 데이터를 가져옵니다. 이 메소드는 성공적으로 읽은 데이터 수와 발생한 오류를 반환합니다. 읽은 데이터 수가 제공된 매개변수보다 적으면 오류 보고 이유가 반환됩니다.

Go 언어에서 스캔 방법의 용도는 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.

Scan 시리즈

Go 언어 fmt 패키지에는 fmt.Scan, fmt.Scanf, fmt. 에는 프로그램 실행 중에 표준 입력에서 사용자 입력을 얻을 수 있는 세 가지 기능이 있습니다. fmt包下有fmt.Scanfmt.Scanffmt.Scanln三个函数,可以在程序运行过程中从标准输入获取用户的输入。

fmt.Scan

语法

func Scan(a ...interface{}) (n int, err error)
로그인 후 복사
  • Scan从标准输入扫描文本,读取由空白符分隔的值保存到传递给本函数的参数中,换行符视为空白符。
  • 本函数返回成功扫描的数据个数和遇到的任何错误。如果读取的数据个数比提供的参数少,会返回一个错误报告原因。

代码示例

func main() {
    var (
        name    string
        age     int
        married bool
    )
    fmt.Scan(&name, &age, &married)
    fmt.Printf("扫描结果 name:%s age:%d married:%t \n", name, age, married)
}
로그인 후 복사

将上面的代码编译后在终端执行,在终端依次输入小明18false使用空格分隔。

$ ./scan_demo 
小明 18 false
扫描结果 name:小明 age:18 married:false
로그인 후 복사
로그인 후 복사

fmt.Scan从标准输入中扫描用户输入的数据,将以空白符分隔的数据分别存入指定的参数。

fmt.Scanf

语法

func Scanf(format string, a ...interface{}) (n int, err error)
로그인 후 복사
  • Scanf从标准输入扫描文本,根据format参数指定的格式去读取由空白符分隔的值保存到传递给本函数的参数中。
  • 本函数返回成功扫描的数据个数和遇到的任何错误。

代码示例

func main() {
    var (
        name    string
        age     int
        married bool
    )
    fmt.Scanf("1:%s 2:%d 3:%t", &name, &age, &married)
    fmt.Printf("扫描结果 name:%s age:%d married:%t \n", name, age, married)
}
로그인 후 복사

将上面的代码编译后在终端执行,在终端按照指定的格式依次输入小明、18false。

$ ./scan_demo 
1:小明 2:18 3:false
扫描结果 name:小明 age:18 married:false
로그인 후 복사

fmt.Scanf不同于fmt.Scan简单的以空格作为输入数据的分隔符,fmt.Scanf为输入数据指定了具体的输入内容格式,只有按照格式输入数据才会被扫描并存入对应变量。

例如,我们还是按照上个示例中以空格分隔的方式输入,fmt.Scanf就不能正确扫描到输入的数据。

$ ./scan_demo 
小明 18 false
扫描结果 name: age:0 married:false
로그인 후 복사

fmt.Scanln

语法

func Scanln(a ...interface{}) (n int, err error)
로그인 후 복사
  • Scanln类似Scan,它在遇到换行时才停止扫描。最后一个数据后面必须有换行或者到达结束位置。
  • 本函数返回成功扫描的数据个数和遇到的任何错误。

代码示例

func main() {
    var (
        name    string
        age     int
        married bool
    )
    fmt.Scanln(&name, &age, &married)
    fmt.Printf("扫描结果 name:%s age:%d married:%t \n", name, age, married)
}
로그인 후 복사

将上面的代码编译后在终端执行,在终端依次输入小明18false使用空格分隔。

$ ./scan_demo 
小明 18 false
扫描结果 name:小明 age:18 married:false
로그인 후 복사
로그인 후 복사

fmt.Scanln

fmt.Scan

구문

rrreee
  • Scan은 표준 입력에서 텍스트를 스캔하고 공백에서 읽어옵니다. - 구분된 값은 이 함수에 전달된 인수에 저장되며 줄 바꿈은 공백 문자로 처리됩니다.
  • 이 함수는 성공적으로 스캔된 데이터 수와 발생한 오류 수를 반환합니다. 읽은 데이터 수가 제공된 매개변수보다 적으면 오류 보고 이유가 반환됩니다.

코드 예

rrreee위 코드를 컴파일하고 터미널에서 실행해보세요. Xiao Ming , 18false는 공백으로 구분됩니다. rrreeefmt.Scan은 표준 입력에서 사용자가 입력한 데이터를 스캔하고 공백 문자로 구분된 데이터를 지정된 매개변수에 저장합니다. 🎜

🎜fmt.Scanf🎜

구문

rrreee
  • Scanf는 표준 입력에서 텍스트를 스캔합니다. format 매개변수로 지정된 형식은 공백으로 구분된 값을 읽어 이 함수에 전달된 매개변수에 저장합니다.
  • 이 함수는 성공적으로 스캔된 데이터 수와 발생한 오류 수를 반환합니다.

코드 예

rrreee🎜위 코드를 컴파일하고 터미널에서 실행해보세요. 터미널에 Xiao Ming, 를 입력하세요. 지정된 형식 18false에 따라 순서를 지정합니다. 🎜rrreee🎜fmt.Scanf는 단순히 공백을 입력 데이터의 구분 기호로 사용하는 fmt.Scanf와는 다릅니다. > 입력 데이터에는 특정 입력 내용 형식이 지정됩니다. 해당 형식에 따라 입력된 데이터만 스캔되어 해당 변수에 저장됩니다. 🎜🎜예를 들어 이전 예와 같이 여전히 공백으로 구분된 형식으로 데이터를 입력하는 경우 fmt.Scanf는 입력 데이터를 올바르게 스캔할 수 없습니다. 🎜rrreee

🎜fmt.Scanln🎜

구문

rrreee
  • Scanln은 Scan과 유사하며, 개행. 마지막 데이터 뒤에는 줄 바꿈이 있어야 하며, 그렇지 않으면 끝 위치에 도달해야 합니다.
  • 이 함수는 성공적으로 스캔된 데이터 수와 발생한 오류 수를 반환합니다.

코드 예

rrreee🎜위 코드를 컴파일하고 터미널에서 실행해 보세요. Xiao Ming을 입력하세요. code>18 및 false는 공백으로 구분됩니다. 🎜rrreee🎜fmt.Scanln은 캐리지 리턴이 발생하면 스캔을 종료합니다. 이 방법이 더 일반적으로 사용됩니다. 🎜🎜추천 학습: 🎜Golang 튜토리얼🎜🎜

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

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

GO에서 플로팅 포인트 번호 작업에 어떤 라이브러리가 사용됩니까? GO에서 플로팅 포인트 번호 작업에 어떤 라이브러리가 사용됩니까? Apr 02, 2025 pm 02:06 PM

Go Language의 부동 소수점 번호 작동에 사용되는 라이브러리는 정확도를 보장하는 방법을 소개합니다.

Go 's Crawler Colly의 큐 스레드의 문제는 무엇입니까? Go 's Crawler Colly의 큐 스레드의 문제는 무엇입니까? Apr 02, 2025 pm 02:09 PM

Go Crawler Colly의 대기열 스레딩 문제는 Colly Crawler 라이브러리를 GO 언어로 사용하는 문제를 탐구합니다. � ...

GO의 어떤 라이브러리가 대기업에서 개발하거나 잘 알려진 오픈 소스 프로젝트에서 제공합니까? GO의 어떤 라이브러리가 대기업에서 개발하거나 잘 알려진 오픈 소스 프로젝트에서 제공합니까? Apr 02, 2025 pm 04:12 PM

GO의 어떤 라이브러리가 대기업이나 잘 알려진 오픈 소스 프로젝트에서 개발 했습니까? GO에 프로그래밍 할 때 개발자는 종종 몇 가지 일반적인 요구를 만납니다.

GO 언어에서 'var'와 'type` 키워드 정의 구조의 차이점은 무엇입니까? GO 언어에서 'var'와 'type` 키워드 정의 구조의 차이점은 무엇입니까? Apr 02, 2025 pm 12:57 PM

GO 언어에서 구조를 정의하는 두 가지 방법 : VAR과 유형 키워드의 차이. 구조를 정의 할 때 Go Language는 종종 두 가지 다른 글쓰기 방법을 본다 : 첫째 ...

Redis Stream을 사용하여 GO Language에서 메시지 대기열을 구현할 때 User_ID 유형 변환 문제를 해결하는 방법은 무엇입니까? Redis Stream을 사용하여 GO Language에서 메시지 대기열을 구현할 때 User_ID 유형 변환 문제를 해결하는 방법은 무엇입니까? Apr 02, 2025 pm 04:54 PM

Go Language에서 메시지 대기열을 구현하기 위해 Redisstream을 사용하는 문제는 Go Language와 Redis를 사용하는 것입니다 ...

이동 중에 왜 println 및 string () 함수로 문자열이 다른 효과를 갖는 이유는 무엇입니까? 이동 중에 왜 println 및 string () 함수로 문자열이 다른 효과를 갖는 이유는 무엇입니까? Apr 02, 2025 pm 02:03 PM

Go Language의 문자열 인쇄의 차이 : println 및 String () 함수 사용 효과의 차이가 진행 중입니다 ...

Go 및 Viper 라이브러리를 사용할 때 포인터를 전달 해야하는 이유는 무엇입니까? Go 및 Viper 라이브러리를 사용할 때 포인터를 전달 해야하는 이유는 무엇입니까? Apr 02, 2025 pm 04:00 PM

Go Pointer Syntax 및 Viper Library 사용의 문제 해결 GO 언어로 프로그래밍 할 때 특히 포인터의 구문 및 사용법을 이해하는 것이 중요합니다.

Go Language to Traverse 슬라이스 및 매장 맵에 범위를 사용할 때 모든 값이 마지막 요소가되는 이유는 무엇입니까? Go Language to Traverse 슬라이스 및 매장 맵에 범위를 사용할 때 모든 값이 마지막 요소가되는 이유는 무엇입니까? Apr 02, 2025 pm 04:09 PM

GO의지도 반복이 왜 모든 값이 마지막 요소가되게합니까? Go Language에서 인터뷰 질문에 직면했을 때, 당신은 종종지도를 만납니다 ...

See all articles