Golang的標准輸入輸出
作者:尹正傑
版權聲明:原創作品,謝絕轉載!否則將追究法律責任。
在很多情況下,我們希望用戶通過鍵盤輸入一個數值,存儲到某個變量中,然后將該變量的值取出來,進行操作。這時候就得用到標准輸入了,當然有時候我們也得用到標准輸出,接下來咱們九一起來學習一下吧。
一.標准輸入
1>.fmt.Scan應用案例(推薦使用)
package main import "fmt" func main() { var name string var age int /* 使用"&"獲取score變量的內存地址(即取變量內存地址的運算符),通過鍵盤輸入為score變量指向的內存地址賦初值。 fmt.Scan是一個阻塞的函數,如果它獲取不到數據就會一直阻塞喲。 fmt.Scan可以接收多個參數,用戶輸入參數默認使用空格或者回車換行符分割輸入設備傳入的參數,直到接收所有的參數為止 */ fmt.Scan(&name, &age) fmt.Println(name, age) }
2>.fmt.Scanln應用案例
package main import "fmt" func main() { var name string var age int /* 和fmt.Scan功能類似,fmt.Scanln也是一個阻塞的函數,如果它獲取不到數據就會一直阻塞喲。 fmt.Scanln也可以接收多個參數,用戶輸入參數默認使用空格分割輸入設備傳入的參數,遇到回車換行符就結束接收參數 */ fmt.Scanln(&name, &age) fmt.Println(name, age) }
3>.fmt.Scanf應用案例
package main import "fmt" func main() { var name string var age int /* 和fmt.Scanln功能類似,fmt.Scanf也是一個阻塞的函數,如果它獲取不到數據就會一直阻塞喲。 其實fmt.Scanln和fmt.Scanf可都以接收多個參數,用戶輸入參數默認使用空格分割輸入設備傳入的參數,遇到回車換行符就結束接收參數 唯一區別就是可以格式化用戶輸入的數據類型,如下所示: %s: 表示接收的參數會被轉換成一個字符串類型,賦值給變量 %d: 表示接收的參數會被轉換成一個整形類型,賦值給變量 生產環境中使用fmt.Scanln和fmt.Scanf的情況相對較少,一般使用fmt.Scan的情況較多~ */ fmt.Scanf("%s%d", &name, &age) fmt.Println(name, age) }
二.標准輸出
1>.fmt.Println應用案例
package main import "fmt" func main() { name := "尹正傑" age := 18 fmt.Println("======================") /* 將變量的值取出來打印並換行 */ fmt.Println(name, age) fmt.Println("======================") }
2>.fmt.Print應用案例
package main import "fmt" func main() { name := "尹正傑" age := 18 fmt.Println("======================") /* 將變量的值取出來打印但不換行 */ fmt.Print(name, age) fmt.Println("======================") }
3>.fmt.Printf應用案例
package main import "fmt" func main() { name := "尹正傑" age := 18 fmt.Println("======================") /* 常用的占位符: %s: 表示一個字符串類型 %d: 表示一個整形類型 %T: 表示一個變量對應的數據類型 %f: 表示一個浮點數類型 %t: 表示一個布爾類型 %c: 表示一個字符類型 %p: 表示一個指針類型 \t: 表示一個制表符 \n: 表示換行符 可以使用占位符格式化打印結果,如下所示。 */ fmt.Printf("姓名:%s\t年齡:%d\n", name, age) fmt.Println("======================") }