首頁 > 後端開發 > Golang > go語言的scan方法有什麼用

go語言的scan方法有什麼用

青灯夜游
發布: 2023-01-10 11:37:11
原創
6586 人瀏覽過

在go語言中,Scan()方法用於從標準輸入「os.Stdin」讀取文本,即從終端獲取資料。此方法會傳回成功讀取的資料個數和遇到的任何錯誤;如果讀取的資料個數比提供的參數少,會傳回一個錯誤報告原因。

go語言的scan方法有什麼用

本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。

Scan系列

Go語言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遇到回車就結束掃描了,這個比較常用。

推薦學習:Golang教學

以上是go語言的scan方法有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板