- GO語言編程從入門到實踐
- 黃永祥
- 998字
- 2023-08-31 19:56:58
1.9 動手練習:編程實現人機交互
我們已經成功搭建了Go語言的開發環境,并在GoLand中編寫了簡單的應用程序,本節使用Go語言的內置包fmt實現數據輸入和輸出功能。
內置包fmt的Printf()函數將數據以字符串格式輸出,它的語法定義如下:
Printf(format string, a ...interface{}) (n int, err error)
語法說明如下:
1)參數format以字符串類型表示,數據以雙引號“""”或反引號“``”表示,并支持字符串格式化,即在字符串里面設置變量,使數據能隨著變量值的變化而變化。
2)參數a是不固定參數,即允許設置0或多個參數;參數類型為空接口,即支持任意數據類型的數據,主要為字符串格式化提供變量設置。
3)返回值n為整型,代表輸出字符串的長度。
4)返回值error代表函數執行過程中出現的異常信息。
除了Printf()函數之外,內置包fmt還定義了其他輸出函數:Sprintf()、Println()和Sprintln(),函數說明如下:
1)Sprintf()與Printf()的參數相同,返回值為字符串類型,它將輸出字符串作為函數返回值。
2)Println()只要參數a,它是不固定參數,參數類型為空接口,允許輸出0個或多個數據,返回值n和error分別代表輸出數據的長度和異常信息。
3)Sprintln()與Println()的參數相同,返回值為字符串類型,輸出數據以字符串類型作為函數返回值。
內置包fmt的Scanln()函數允許用戶在程序命令行輸入數據,它的語法定義如下:
Scanln(a ...interface{}) (n int, err error)
語法說明如下:
1)參數a是不固定參數,即允許設置0或多個參數;參數類型為空接口,即支持任意數據類型的數據,它用于存儲用戶輸入的數據。
2)返回值n為整型,代表輸入字符串的長度。
3)返回值error代表函數執行過程中出現的異常信息。
除了Scanln()函數之外,內置包fmt還定義了其他輸入函數:Scan()、Scanf()、Sscan()和Sscanln()等,它們的功能和使用方式都是大同小異,本書就不再詳細講述。
了解了Go語言的輸入和輸出函數后,下一步使用輸入和輸出函數實現人機交互功能,簡單來說就是用戶按照提示輸入數據,程序就輸出對應的內容,實現過程如下:
package main import "fmt" func main() { // 定義變量name、age、addr // 用于存儲用戶輸入的數據 var name, age, addr string // 輸出操作提示 fmt.Printf("請輸入你的名字:\n") // 存儲用戶輸入的數據 fmt.Scanln(&name) // 輸出操作提示 fmt.Printf("請輸入你的年齡:\n") // 存儲用戶輸入的數據 fmt.Scanln(&age) // 輸出操作提示 fmt.Printf("請輸入你的居住地:\n") // 存儲用戶輸入的數據 fmt.Scanln(&addr) // 輸出用戶輸入的所有數據 fmt.Printf("你的名字是:%v,年齡:%v,居住地:%v",name,age,addr) }
在GoLand中運行上述代碼,在GoLand的Run窗口按照程序提示輸入數據并按回車鍵完成當前輸入,輸入數據在Run窗口無法顯示,數據直接存儲在變量name、age和addr中,只有通過輸出函數輸出變量值才能看到用戶輸入的數據,如圖1-30所示。

圖1-30 運行結果
- Oracle從入門到精通(第3版)
- Objective-C應用開發全程實錄
- 微服務與事件驅動架構
- Mastering Selenium WebDriver
- Java從入門到精通(第4版)
- DevOps Automation Cookbook
- 機械工程師Python編程:入門、實戰與進階
- PLC編程及應用實戰
- Jenkins Continuous Integration Cookbook(Second Edition)
- 程序設計基礎教程:C語言
- OpenResty完全開發指南:構建百萬級別并發的Web應用
- Python機器學習算法與應用
- Xamarin Cross-Platform Development Cookbook
- 和孩子一起學編程:用Scratch玩Minecraft我的世界
- Learning Shiny