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

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

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747


Go語(yǔ)言學(xué)習(xí):如何在Go中編寫第一個(gè)程序

 

介紹

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

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

Output

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

準(zhǔn)備條件

在開始本教程之前,您將需要在計(jì)算機(jī)上設(shè)置本地開發(fā)環(huán)境,如果你是mac系統(tǒng),可以參見我之前的介紹:

Go語(yǔ)言學(xué)習(xí):如何在macOS上安裝Go并設(shè)置本地編程環(huán)境

其他系統(tǒng)差別不大,請(qǐng)自行準(zhǔn)備。

第1步-構(gòu)建“ Hello,World!”程序的基本結(jié)構(gòu)

一個(gè)完整的go程序,需要制定一個(gè)清晰的目錄結(jié)構(gòu),良好的結(jié)構(gòu)可以幫助我們導(dǎo)航代碼,了解重要內(nèi)容并快速定位需要修改的內(nèi)容。

良好的項(xiàng)目結(jié)構(gòu)將使您的代碼庫(kù)更容易擴(kuò)展。

項(xiàng)目結(jié)構(gòu)沒有約定的規(guī)范,個(gè)人根據(jù)自己的情況設(shè)定,一般來說,下面是一個(gè)比較好的結(jié)構(gòu):

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!”程序

我們進(jìn)入cmd 目錄,要編寫“ Hello,World!”程序,請(qǐng)打開一個(gè)命令行文本編輯器,例如nano并創(chuàng)建一個(gè)新文件:

$cd ./cmd
$nano main.go

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

hello.go

$nano main.go

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

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

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

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

您可以在fmt.Println函數(shù)后加上一系列"Hello, World!"用引號(hào)引起來的字符,例如。引號(hào)內(nèi)的任何字符都稱為字符串。fmt.Println程序運(yùn)行時(shí),該函數(shù)會(huì)將此字符串打印到屏幕上。

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

現(xiàn)在我們來測(cè)試下程序。

第3步-運(yùn)行Go程序

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

  • go run main.go

程序?qū)?zhí)行并顯示以下輸出:

Output

Hello, World!

讓我們看看代碼運(yùn)行的情況。

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

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

編譯后,通過main()入口來執(zhí)行代碼。它執(zhí)行fmt.Println("Hello, World!")通過調(diào)用該fmt.Println函數(shù)。的字符串值Hello, World!,然后傳遞給函數(shù)。在此示例中,該字符串Hello, World!也稱為參數(shù),因?yàn)樗莻鬟f給方法的值。

Hello, World!屏幕上不會(huì)顯示兩邊的引號(hào),因?yàn)槟褂盟鼈儊砀嬖VGo字符串的開始和結(jié)束位置。

在此步驟中,您已經(jīng)使用Go創(chuàng)建了一個(gè)有效的“ Hello,World!”程序。

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

第4步 —提示用戶輸入

每次運(yùn)行程序時(shí),它都會(huì)產(chǎn)生相同的輸出。在此步驟中,您可以將其添加到程序中,以提示用戶輸入其名稱。然后,您將在輸出中使用它們的名稱。

無需修改現(xiàn)有程序,而是greeting.go使用nano編輯器創(chuàng)建一個(gè)新程序:

  • nano greeting.go

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

greeting.go

package main

import (
 "fmt"
)

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

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

現(xiàn)在添加代碼來存儲(chǔ)用戶的輸入:

greeting.go

package main

import (
 "fmt"
)

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

該var name string行將使用var 關(guān)鍵字創(chuàng)建一個(gè)新變量。您為變量命名name,它將是類型string。

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

greeting.go

package main

import (
 "fmt"
)

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

該fmt.Scanln方法告訴計(jì)算機(jī)等待鍵盤輸入以新行或(n)結(jié)尾的字符。這將暫停程序,允許用戶輸入所需的任何文本。當(dāng)用戶按下ENTER鍵盤上的鍵時(shí),程序?qū)⒗^續(xù)。ENTER然后捕獲所有擊鍵,包括擊鍵,并將其轉(zhuǎn)換為字符串。

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

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

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函數(shù)采用字符串,并使用特殊的打印動(dòng)詞(%s)將值name插入字符串。這樣做是因?yàn)镚o不支持字符串插值,因?yàn)樽址逯悼梢宰屇@取分配給變量的值并將其放在字符串中。

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

現(xiàn)在運(yùn)行程序。系統(tǒng)將提示您輸入名稱,請(qǐng)輸入名稱,然后按ENTER。輸出結(jié)果可能與您期望的不完全相同:

Output

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

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

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

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

  • nano greeting.go

程序現(xiàn)在將包含以下內(nèi)容:

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在提示保存文件時(shí)按。

再次運(yùn)行程序:

  • go run greeting.go

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

Output

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

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

結(jié)論

這是一個(gè)簡(jiǎn)單的入門程序,您可以嘗試使用其他的技術(shù)來創(chuàng)建一個(gè)Go程序。


點(diǎn)擊關(guān)注,如果發(fā)現(xiàn)任何不正確的地方,或者想分享有關(guān)上述主題的更多信息,歡迎反饋。

分享到:
標(biāo)簽:語(yǔ)言
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定