Go fmt包中Scan獲取標(biāo)準(zhǔn)輸入方式
Go fmt包下有三個函數(shù)
可以在程序運行過程中獲取用戶輸入。
fmt.Scan:獲取輸入fmt.Scanf:獲取輸入,但是可以指定格式,go會根據(jù)格式解析參數(shù)fmt.Scanln:獲取一行的輸入,只會獲取到一行。
示例1
我們需要和gates和jobs問個好,代碼:
fmt.Println("Please enter your names")
var a1, a2 string
fmt.Scan(&a1, &a2)
fmt.Println("hello,", a1, "and", a2)運行后,在窗口中輸入:gates jobs
輸出:
hello, gates and jobs
可以看出,go把輸入的參數(shù)按空格分開后,分別賦值給了a1和a2。
整體運行結(jié)果(第二行是運行時用戶輸入的):
Please enter your names
gates jobs
hello, gates and jobs
如果我們輸入時換行輸入:
Please enter your names
gates
jobs
hello, gates and jobs
可以看出gates和jobs中間是敲了回車的,這是Scan和Scanln的區(qū)別。Scan回車還可以繼續(xù)接受,Scanln只要收到回車就不會繼續(xù)接收輸入了。
示例2
Scanln和Scan非常類似,只是Scanln只會接受一個回車,收到回車就掃描結(jié)束了。
var c1, c2 string
fmt.Scanln(&c1, &c2)
fmt.Println("hello,", c1, "and", c2)運行結(jié)果:
Please enter your names
gates jobs
hello, gates and jobs
如果換行輸入,結(jié)果是:
Please enter your names
gates
hello, gates and
因為輸入了gates后,回車,結(jié)果就打印出來了,沒機會再輸入jobs了,和Scan函數(shù)不一樣。
示例3
fmt.Println("Please enter your names")
var b1, b2 string
fmt.Scanf("%s , %s", &b1, &b2)
fmt.Println("hello,", b1, "and", b2)運行結(jié)果:
Please enter your names
gates , jobs
hello, gates and jobs
上面的示例,需要注意兩點:
1、Scanf中間有一個逗號,但逗號和%s間有空格,因為Scanf是用空格來區(qū)分不同的參數(shù)的。
2、輸入的參數(shù)gates , jobs格式與Scanf中指定的fmt要一致。
3、中間的逗號,Scanf會自動格式匹配不會添加到變量中
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Golang中int類型和字符串類型相互轉(zhuǎn)換的實現(xiàn)方法
在日常開發(fā)中,經(jīng)常需要將數(shù)字轉(zhuǎn)換為字符串或者將字符串轉(zhuǎn)換為數(shù)字,在 Golang 中,有一些很簡便的方法可以實現(xiàn)這個功能,接下來就詳細(xì)講解一下如何實現(xiàn) int 類型和字符串類型之間的互相轉(zhuǎn)換,需要的朋友可以參考下2023-09-09
Golang結(jié)合ip2region實現(xiàn)ip歸屬地查詢
ip2region - 是一個離線IP地址定位庫和IP定位數(shù)據(jù)管理框架,提供了眾多主流編程語言的 xdb 數(shù)據(jù)生成和查詢客戶端實現(xiàn),下面我們就來看看Golang如何結(jié)合ip2region實現(xiàn)ip歸屬地查詢吧2024-03-03

