Home > Backend Development > Golang > What is the use of the scan method in go language?

What is the use of the scan method in go language?

青灯夜游
Release: 2023-01-10 11:37:11
Original
6587 people have browsed it

In the go language, the Scan() method is used to read text from the standard input "os.Stdin", that is, to obtain data from the terminal. This method will return the number of data successfully read and any errors encountered; if the number of data read is less than the provided parameters, an error report reason will be returned.

What is the use of the scan method in go language?

The operating environment of this tutorial: Windows 7 system, GO version 1.18, Dell G3 computer.

Scan series

Go languagefmt package includes fmt.Scan, ## The three functions #fmt.Scanf and fmt.Scanln can obtain user input from standard input during program running.

fmt.Scan

Syntax

func Scan(a ...interface{}) (n int, err error)
Copy after login

    Scan scans text from standard input, reading whitespace separated values ​​and saving them to pass In arguments given to this function, newline characters are treated as whitespace characters.
  • This function returns the number of successfully scanned data and any errors encountered. If the number of data read is less than the provided parameters, an error report reason will be returned.
Code example

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)
}
Copy after login

Compile the above code and execute it in the terminal. Enter

小明, 18 and ## in the terminal. #falseUse spaces to separate. <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$ ./scan_demo  小明 18 false 扫描结果 name:小明 age:18 married:false</pre><div class="contentsignin">Copy after login</div></div><div class="contentsignin">Copy after login</div></div>

fmt.Scan

Scan the data entered by the user from the standard input and store the data separated by whitespace characters into the specified parameters.

fmt.Scanf

Syntax

func Scanf(format string, a ...interface{}) (n int, err error)
Copy after login

Scanf scans text from standard input and reads whitespace according to the format specified by the format parameter Character-separated values ​​are stored in the parameters passed to this function.
  • This function returns the number of successfully scanned data and any errors encountered.
  • Code example
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)
}
Copy after login

Compile the above code and execute it in the terminal. Enter Xiaoming,

18

and false in the terminal according to the specified format. . <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$ ./scan_demo  1:小明 2:18 3:false 扫描结果 name:小明 age:18 married:false</pre><div class="contentsignin">Copy after login</div></div>

fmt.Scanf

Different from fmt.Scan which simply uses spaces as the delimiter for input data, fmt.Scanf A specific input content format is specified for the input data. Only data input according to the format will be scanned and stored in the corresponding variables. For example, if we still input the data in the space-separated format as in the previous example,

fmt.Scanf

will not be able to correctly scan the input data. <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$ ./scan_demo  小明 18 false 扫描结果 name: age:0 married:false</pre><div class="contentsignin">Copy after login</div></div>

fmt.Scanln

Syntax

func Scanln(a ...interface{}) (n int, err error)
Copy after login

Scanln is similar to Scan, it only stops scanning when it encounters a newline. There must be a line break after the last data or the end position must be reached.
  • This function returns the number of successfully scanned data and any errors encountered.
  • Code example
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)
}
Copy after login

Compile the above code and execute it in the terminal. Enter

小明

, 18 and ## in the terminal. #falseUse spaces to separate.

<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$ ./scan_demo  小明 18 false 扫描结果 name:小明 age:18 married:false</pre><div class="contentsignin">Copy after login</div></div><div class="contentsignin">Copy after login</div></div> fmt.ScanlnThe scan ends when a carriage return is encountered. This is more commonly used.

Recommended learning: Golang tutorial

The above is the detailed content of What is the use of the scan method in go language?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template