官术网_书友最值得收藏!

  • Go并發編程實戰
  • 汪明
  • 884字
  • 2022-07-29 15:05:29

1.8 演練:Exit自動退出程序

由于我們并未開始詳細介紹Go語言的基本語法,因此對于本節的Go代碼讀者不必追求一次看懂。下面通過實戰演練Exit自動退出程序來進一步了解Go語言。

(1)打開Visual Studio Code編輯器,并打開目錄go.introduce\chapter01\code02(如果沒有此目錄,則需要創建此目錄),在該目錄中新建一個main.go文件。

(2)輸入示例程序1-3,該程序會循環檢測用戶的控制臺輸入。如果輸入的字符為“exit”,那么程序會自動退出,否則打印出用戶輸入的信息,并繼續等待用戶的再次輸入。

示例程序1-3 Exit自動退出程序:chapter01\code02\main.go

注意

示例程序1-3中的18行fmt.Sscan(input, & str)可以移除input變量中末尾的特殊換行符,否則無法和“exit”一致。

(3)在目錄go.introduce\chapter01\code02中,用命令行窗口執行go run main.go命令,編譯器會對main.go進行編譯并運行,程序會顯示提示符“> ”等待用戶輸入。

(4)當輸入“hello”并按Enter鍵后,由于不是exit字符,因此會輸出“輸入hello”。當輸入“exit”并按Enter鍵后,程序就會退出,該程序的執行過程如圖1.21所示。

圖1.21 Exit自動退出程序的運行界面

由于Exit自動退出程序是一個獨立的可執行程序,因此必須在第01行(排除空格和注釋)指定包名為main,并包含一個main函數(第07行)。第02~06行import后面用括號可以導入多個包。bufio、fmt和os這3個包都在Go語言標準庫中:

· bufio包通過對io模塊的封裝,提供了數據緩沖功能,能夠從一定程度上減少大塊數據讀寫帶來的開銷。

· fmt包提供了打印函數,將數據以字符串形式輸出到控制臺或文件中。

· os包提供了不依賴平臺的操作系統函數接口,比如可以獲取環境變量、進行文件夾和文件操作等。

第09行末尾的雙斜線(//)代表單行注釋。第09~11行中的符號“:=”在Go語言中表示聲明變量并對變量進行賦值。例如,第11行str := ""語句表示聲明一個變量str,并把空字符串賦值給str。第12行for表示一個無限循環,在Go語言中,循環關鍵詞只有一個for。

第14行input, _ = f.ReadString('\n')語句中的(_)表示空白標識符。在Go語言中,空白標識符具有特殊的用途,表示可以忽略對應的值。第15行if語句中的條件部分不能包含括號,且if后的第一個大括號({)必須和if在同一行,否則會報錯。Go語言每行的結尾都不需要分號(;)。在編輯器中,如果給每行末尾加上分號(;),那么格式化工具gofmt等也會將這些分號刪除掉。

主站蜘蛛池模板: 元谋县| 栖霞市| 沧州市| 长沙县| 鞍山市| 五指山市| 怀来县| 耒阳市| 祁连县| 绩溪县| 梓潼县| 秦安县| 称多县| 都安| 黄陵县| 横峰县| 山丹县| 新平| 怀安县| 广州市| 天全县| 洪湖市| 阜南县| 永丰县| 犍为县| 汝阳县| 龙州县| 革吉县| 屏东县| 盘山县| 禄丰县| 县级市| 杭锦旗| 大渡口区| 西藏| 深圳市| 阿拉善盟| 运城市| 弥渡县| 晴隆县| 徐汇区|