go語言的scan方法有什麼用
在go語言中,Scan()方法用於從標準輸入「os.Stdin」讀取文本,即從終端獲取資料。此方法會傳回成功讀取的資料個數和遇到的任何錯誤;如果讀取的資料個數比提供的參數少,會傳回一個錯誤報告原因。
本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。
Scan系列
Go語言fmt
套件下方有fmt.Scan
、fmt.Scanf
、fmt.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) }
將上面的程式碼編譯後在終端執行,在終端機依序輸入小明
、18
和false
使用空格分隔。
$ ./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) }
將上面的程式碼編譯後在終端執行,在終端機依照指定的格式依序輸入小明、18
和false 。
$ ./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) }
將上面的程式碼編譯後在終端執行,在終端機依序輸入小明
、18
和false
使用空格分隔。
$ ./scan_demo 小明 18 false 扫描结果 name:小明 age:18 married:false
fmt.Scanln
遇到回車就結束掃描了,這個比較常用。
推薦學習:Golang教學
以上是go語言的scan方法有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Go語言中用於浮點數運算的庫介紹在Go語言(也稱為Golang)中,進行浮點數的加減乘除運算時,如何確保精度是�...

Go爬蟲Colly中的Queue線程問題探討在使用Go語言的Colly爬蟲庫時,開發者常常會遇到關於線程和請求隊列的問題。 �...

Go語言中使用RedisStream實現消息隊列時類型轉換問題在使用Go語言與Redis...

Go語言中字符串打印的區別:使用Println與string()函數的效果差異在Go...

GoLand中自定義結構體標籤不顯示怎麼辦?在使用GoLand進行Go語言開發時,很多開發者會遇到自定義結構體標籤在�...

Go語言中哪些庫是大公司開發或知名開源項目?在使用Go語言進行編程時,開發者常常會遇到一些常見的需求,�...

Go語言中結構體定義的兩種方式:var與type關鍵字的差異Go語言在定義結構體時,經常會看到兩種不同的寫法:一�...
