go語言入門教程分享:第一個程序:HelloWorld

第一個程序:HelloWorld

一、go項(xiàng)目工程結(jié)構(gòu)

配置好工作目錄后,就可以編碼開發(fā)了,在這之前,我們看下go的通用項(xiàng)目結(jié)構(gòu),這里的結(jié)構(gòu)主要是源代碼相應(yīng)地資源文件存放目錄結(jié)構(gòu)。

1.1 gopath目錄

gopath目錄就是我們存儲我們所編寫源代碼的目錄。該目錄下往往要有3個子目錄:src,bin,pkg。

src ---- 里面每一個子目錄,就是一個包。包內(nèi)是Go的源碼文件

pkg ---- 編譯后生成的,包的目標(biāo)文件

bin ---- 生成的可執(zhí)行文件。

1.2 編寫第一個程序

1.在HOME/go的目錄下,(就是GOPATH目錄里),創(chuàng)建一個目錄叫src,然后再該目錄下創(chuàng)建一個文件夾叫hello,在該目錄下創(chuàng)建一個文件叫helloworld.go,并雙擊打開,輸入以下內(nèi)容:

packagemain

?

import"fmt"

?

funcmain() {

fmt.Println("Hello, World!")

}

2.執(zhí)行g(shù)o程序

執(zhí)行g(shù)o程序由幾種方式

方式一:使用go run命令

step1:打開終端:

window下使用快捷鍵win+R,輸入cmd打開命令行提示符

linux下可以使用快捷鍵:ctrl+alt+T

mac下command+空格,輸入termainl

step2:進(jìn)入helloworld.go所在的目錄

step3:輸入go run helloworld.go命令并觀察運(yùn)行結(jié)果。

方式二:使用go build命令

step1:打開終端:在任意文件路徑下,運(yùn)行:? go install hello

也可以進(jìn)入項(xiàng)目(應(yīng)用包)的路徑,然后運(yùn)行:? go install

注意,在編譯生成go程序的時,go實(shí)際上會去兩個地方找程序包:GOROOT下的src文件夾下,以及GOPATH下的src文件夾下。

在程序包里,自動找main包的main函數(shù)作為程序入口,然后進(jìn)行編譯。

step2:運(yùn)行g(shù)o程序? 在/home/go/bin/下(如果之前沒有bin目錄則會自動創(chuàng)建),會發(fā)現(xiàn)出現(xiàn)了一個hello的可執(zhí)行文件,用如下命令運(yùn)行:? ./hello

1.3 第一個程序的解釋說明

3.2.1 package

在同一個包下面的文件屬于同一個工程文件,不用import包,可以直接使用

在同一個包下面的所有文件的package名,都是一樣的

在同一個包下面的文件package名都建議設(shè)為是該目錄名,但也可以不是

3.2.2? import

import "fmt" 告訴 Go 編譯器這個程序需要使用 fmt 包的函數(shù),fmt 包實(shí)現(xiàn)了格式化 IO(輸入/輸出)的函數(shù)

可以是相對路徑也可以是絕對路徑,推薦使用絕對路徑(起始于工程根目錄)

點(diǎn)操作我們有時候會看到如下的方式導(dǎo)入包

import(

? ? ."fmt"

)

這個點(diǎn)操作的含義就是這個包導(dǎo)入之后在你調(diào)用這個包的函數(shù)時,你可以省略前綴的包名,也就是前面你調(diào)

用的fmt.Println("hello world")可以省略的寫成Println("hello world")

別名操作別名操作顧名思義我們可以把包命名成另一個我們用起來容易記憶的名字

import(

? ? f"fmt"

)

別名操作的話調(diào)用包函數(shù)時前綴變成了我們的前綴,即f.Println("hello world")

_操作這個操作經(jīng)常是讓很多人費(fèi)解的一個操作符,請看下面這個import

import(

"database/sql"

_"github.com/ziutek/mymysql/godrv"

)

_操作其實(shí)是引入該包,而不直接使用包里面的函數(shù),而是調(diào)用了該包里面的init函數(shù)

3.3.3 main

main(),是程序運(yùn)行的入口。

1.4 包的說明

我們知道源代碼都是存放在GOPATH的src目錄下,那么多個多個項(xiàng)目的時候,怎么區(qū)分呢?答案是通過包,使用包來組織我們的項(xiàng)目目錄結(jié)構(gòu)。有過java開發(fā)的都知道,使用包進(jìn)行組織代碼,包以網(wǎng)站域名開頭就不會有重復(fù),比如千鋒的網(wǎng)站是http://www.mobiletrain.org,我們就可以以mobiletrain.org的名字創(chuàng)建一個文件夾,我自己的go項(xiàng)目都放在這個文件夾里,這樣就不會和其他人的項(xiàng)目沖突,包名也是唯一的。

如果有自己的域名,那也可以使用自己的域名。如果沒有個人域名,現(xiàn)在流行的做法是使用你個人的github名,因?yàn)槊總€人的是唯一的,所以也不會有重復(fù)。

如上,src目錄下跟著一個個域名命名的文件夾。再以github.com文件夾為例,它里面又是以github用戶名命名的文件夾,用于存儲屬于這個github用戶編寫的go源代碼。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 今天,我和朱梅相約到小梅姐店里樓上做深度反省,我們9點(diǎn)15分準(zhǔn)時開時,11點(diǎn)20由店里的一位姐妹來告訴我們。 我今...
    傲雪_352a閱讀 450評論 4 1
  • 1.機(jī)制如下: 注意一點(diǎn): 宏任務(wù)需要多次事件循環(huán)才能執(zhí)行完,微任務(wù)是一次性執(zhí)行完的; 2.宏任務(wù)macrotas...
    懸筆e絕閱讀 2,947評論 0 2
  • 這是很早之前我寫的一個短篇故事了 之所以再寫一遍 是因?yàn)槲艺也坏轿覍懙谋咀恿?所以想再寫一遍好好保存起來 那是我...
    三點(diǎn)俞_閱讀 403評論 0 3

友情鏈接更多精彩內(nèi)容