日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747


Go語言學習:如何在Go中編寫第一個程序

 

介紹

按照慣例,本文從 “ Hello,World!”開始。這是一個簡單而完整的第一個程序,也是確保正確配置環境的好方法。

我們將完成在Go中創建該程序的過程,如下所示:

Output

Please enter your name. Alex Hello, Alex! I'm Go!

準備條件

在開始本教程之前,您將需要在計算機上設置本地開發環境,如果你是mac系統,可以參見我之前的介紹:

Go語言學習:如何在macOS上安裝Go并設置本地編程環境

其他系統差別不大,請自行準備。

第1步-構建“ Hello,World!”程序的基本結構

一個完整的go程序,需要制定一個清晰的目錄結構,良好的結構可以幫助我們導航代碼,了解重要內容并快速定位需要修改的內容。

良好的項目結構將使您的代碼庫更容易擴展。

項目結構沒有約定的規范,個人根據自己的情況設定,一般來說,下面是一個比較好的結構:

cmd/
 binaryname/
 main.go # a small file glueing things together
internal/
 data/
 types.go
 types_test.go # unit tests are right here
 (...)
pkg/
 api/
 types.go # REST API input and output types
test/
 smoketest.py
ui/
 index.html
README.md
Makefile

第2步-編寫基本的“ Hello,World!”程序

我們進入cmd 目錄,要編寫“ Hello,World!”程序,請打開一個命令行文本編輯器,例如nano并創建一個新文件:

$cd ./cmd
$nano main.go

在終端窗口中打開文本文件后,您將輸入程序:

hello.go

$nano main.go

讓我們分解代碼的不同組成部分。

package是Go 關鍵字,用于定義此文件屬于哪個軟件包。每個文件夾只能有一個軟件包,并且每個.go文件都必須在其文件頂部聲明相同的軟件包名稱。在此示例中,代碼屬于main包。

import是Go 關鍵字,它告訴Go編譯器您要在此文件中使用哪些其他軟件包。在這里,您可以導入fmt等軟件包。fmt軟件包提供了格式化和打印功能,這些功能在開發時非常有用。

fmt.Println是包裝中的Go 功能,fmt它告訴計算機在屏幕上打印一些文本。

您可以在fmt.Println函數后加上一系列"Hello, World!"用引號引起來的字符,例如。引號內的任何字符都稱為字符串。fmt.Println程序運行時,該函數會將此字符串打印到屏幕上。

nano通過鍵入保存并退出CTRL + X,在提示保存文件時,按Y。

現在我們來測試下程序。

第3步-運行Go程序

編寫“ Hello,World!”程序后,就可以運行該程序了。您將使用go命令,后跟剛剛創建的文件的名稱。

  • go run main.go

程序將執行并顯示以下輸出:

Output

Hello, World!

讓我們看看代碼運行的情況。

Go程序需要在運行之前進行編譯。go run在這種情況下main.go,使用文件名進行調用時,該go命令將編譯應用程序,然后運行生成的二進制文件。對于用編譯的編程語言編寫的程序,編譯器將獲取程序的源代碼并生成另一種較低級別的代碼(例如機器代碼)以生成可執行程序。

Go應用程序需要一個main程序包和一個 main()功能作為應用程序的入口點。該main函數不接受任何參數,也不返回任何值。相反,它告訴Go編譯器該程序包應編譯為可執行程序包。

編譯后,通過main()入口來執行代碼。它執行fmt.Println("Hello, World!")通過調用該fmt.Println函數。的字符串值Hello, World!,然后傳遞給函數。在此示例中,該字符串Hello, World!也稱為參數,因為它是傳遞給方法的值。

Hello, World!屏幕上不會顯示兩邊的引號,因為您使用它們來告訴Go字符串的開始和結束位置。

在此步驟中,您已經使用Go創建了一個有效的“ Hello,World!”程序。

在下一步中,您將探索如何使程序更具交互性。

第4步 —提示用戶輸入

每次運行程序時,它都會產生相同的輸出。在此步驟中,您可以將其添加到程序中,以提示用戶輸入其名稱。然后,您將在輸出中使用它們的名稱。

無需修改現有程序,而是greeting.go使用nano編輯器創建一個新程序:

  • nano greeting.go

首先,添加以下代碼,提示用戶輸入其名稱:

greeting.go

package main

import (
 "fmt"
)

func main() {
 fmt.Println("Please enter your name.")
}

可以使用該fmt.Println功能在屏幕上打印一些文本。

現在添加代碼來存儲用戶的輸入:

greeting.go

package main

import (
 "fmt"
)

func main() {
 fmt.Println("Please enter your name.")
 var name string
}

該var name string行將使用var 關鍵字創建一個新變量。您為變量命名name,它將是類型string。

然后,添加突出顯示的行以捕獲用戶的輸入:

greeting.go

package main

import (
 "fmt"
)

func main() {
 fmt.Println("Please enter your name.")
 var name string
 fmt.Scanln(&name)
}

該fmt.Scanln方法告訴計算機等待鍵盤輸入以新行或(n)結尾的字符。這將暫停程序,允許用戶輸入所需的任何文本。當用戶按下ENTER鍵盤上的鍵時,程序將繼續。ENTER然后捕獲所有擊鍵,包括擊鍵,并將其轉換為字符串。

您想在程序的輸出中使用這些字符,因此可以通過將它們寫入名為的字符串變量中來保存這些字符name。Go將該字符串存儲在計算機的內存中,直到程序運行完畢。

最后,在程序中添加以下突出顯示的行以打印輸出:

greeting.go

package main

import (
 "fmt"
)

func main() {
 fmt.Println("Please enter your name.")
 var name string
 fmt.Scanln(&name)
 fmt.Printf("Hi, %s! I'm Go!", name)
}

fmt.Printf函數采用字符串,并使用特殊的打印動詞(%s)將值name插入字符串。這樣做是因為Go不支持字符串插值,因為字符串插值可以讓您獲取分配給變量的值并將其放在字符串中。

nano通過按保存并退出CTRL + X,然后Y在提示保存文件時按。

現在運行程序。系統將提示您輸入名稱,請輸入名稱,然后按ENTER。輸出結果可能與您期望的不完全相同:

Output

Please enter your name. Sammy Hi, Sammy ! I'm Go!

而不是Hi, Sammy! I'm Go!,名稱后面有一個換行符。

該程序捕獲了我們所有的按鍵輸入,包括ENTER鍵來告知程序繼續的鍵。

greeting.go在編輯器中打開文件:

  • nano greeting.go

程序現在將包含以下內容:

greeting.go

package main

import (
 "fmt"
 "strings"
)

func main() {
 fmt.Println("Please enter your name.")
 var name string
 fmt.Scanln(&name)
 fmt.Printf("Hi, %s! I'm Go!", name)
 name = strings.TrimSpace(name)
}

保存并退出nano。按CTRL + X,然后Y在提示保存文件時按。

再次運行程序:

  • go run greeting.go

這次,在輸入名稱并按之后ENTER,您將獲得預期的輸出:

Output

Please enter your name. Sammy Hi, Sammy! I'm Go!

現在,您有了一個Go程序,該程序可以從用戶處獲取輸入并將其打印回屏幕。

結論

這是一個簡單的入門程序,您可以嘗試使用其他的技術來創建一個Go程序。


點擊關注,如果發現任何不正確的地方,或者想分享有關上述主題的更多信息,歡迎反饋。

分享到:
標簽:語言
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定