Go語言入門:Hello world

本文是「vangoleo的Go語言學習筆記」系列文章之一。 官網: http://www.vangoleo.com/go/go-hello-world/golang

在上一篇文章你好,Go語言中,咱們對Go語言的歷史和特色有了認識。接下來,咱們就正式進入Go的學習了。 按照大部分編程語言的慣例,咱們以經典的「Hello World」開始Go語言的學習之旅。編程

經典的「Hello World」案例來自於1978年出版的C語言聖經<The C Programming Language>。很巧合的是該書的做者Brian W. Kernighan也是《Go語言聖經》一書的做者。瀏覽器

本教程中,我會使用最方便的方式Golang Playground來體驗Go語言。在瀏覽器中打開https://play.golang.org,在頁面直接編寫Go代碼,並運行。使用Golang Playground無需安裝Go,無需配置Golang的開發環境(好比環境變量),無需安裝文本編輯器或IDE。編程語言

大部分的Hello World教程都會從如何安裝Go,配置環境變量等開始。可是Go語言的安裝和開發環境配置實際上是一個比較複雜的話題。我但願在你們剛接觸Go語言時,能對go語言有一個快速,直觀的認識。而不要陷入如何配置Go的開發環境。配置Go的開發環境涉及到Go語言的另外兩個概念:GOPATH和Go module。而這又會牽扯到Go語言混亂、悠久的依賴管理髮展史。後續會有專門的章節來進行介紹。編輯器

使用Go Playground

第一步:打開https://play.golang.org,在編輯框中輸入Hello World程序:函數

package main

import "fmt"

func main() {
    fmt.Println("Hello world") 
}

以下圖所示: go-hello-world 第二步:點擊「Run」按鈕,能夠看到程序的輸出結果「Hello,world」。 恭喜你,已經編寫了第一個Go程序,並正確地輸出告終果。工具

Go語言特性

雖然Hello World程序很簡單,可是依然包含了Go語言的一些核心概念。接下來,咱們就一行一行地解讀Hello World程序。學習

第一行package main
程序的第一行聲明瞭名爲main的package。Go語言的代碼是經過package來組織的,package的概念和其餘語言裏的package,module概念相似,是一個邏輯的,包含了相同功能代碼的集合。一個package會包含一個或多個.go源代碼文件。每個源文件都是以package開頭。好比咱們的例子裏是package main。這行聲明語句表示該文件是屬於哪個package。code

須要注意,package main是一個比較特殊的package。main package是Go程序的入口。準確說,Go程序的入口是名爲main的package中的main方法(即例子中的main方法)。blog

第二行: import
package聲明語句後緊跟着是import語句。import語句會引入其餘package到當前文件中,這樣就能夠在當前文件使用其餘package中的變量,常量,類型,方法等。Go的import和Java的import,C++的include相似。 Go標準庫已經提供了100多個package,fmt這個package包含接受輸入,格式化輸出的各類函數。Println是其中的一個經常使用函數,能夠格式化地輸出一段文本。

第三行: func main
第三行聲明瞭一個函數,函數名爲main。在Go語言中使用func關鍵字來聲明一個函數。格式爲:

func 函數名(參數名1 參數類型1, 參數名2 參數類型2, ... ) 返回類型1, 返回類型2, ...

好比下面的方法:

func sayHello(name string, age int) string

聲明瞭一個sayHello方法。接收兩個參數:string類型的name和int類型的age。並返回一個string類型的值。 前面也提到了,在main這個package裏,main函數也是一個特殊的函數,這是整個程序的入口(其實C系語言差很少都是這樣)。

第四行: fmt.Println
第四行是程序真正執行的邏輯,會輸出「Hello world」。fmt是經過import引入的包,是go標準庫提供的包。Println是fmt包中定義的一個方法,做用是將文本輸出到標準輸出。

Go語言特色

經過Hello world,咱們能夠發現Go語言的一些特色:

  • 語句的結尾不須要分號。這和C系語言,Java等語言不一樣。
  • Go語言不須要顯示聲明方法或變量的做用範圍。即不用顯式聲明public或private。其實Go語言是經過變量或方法名的首字母是大寫仍是小寫來肯定做用範圍的。大寫字母開頭的爲public,小寫字母開頭的爲private。

還有一些Go的特色,因爲Hello world程序比較簡單,沒有體現出來。這裏也順帶說一下:

  • Go語言聲明變量和方法參數時,名字在前,類型在後。好比var name string。這和C系語言,Java語言都不一樣。
  • Go語言在代碼格式上採起了很強硬的態度。go提供的gofmt工具會將你的代碼格式化爲標準格式(這個格式化工具沒有任何能夠調整代碼格式的參數,Go語言就是這麼任性),規定一種標準的代碼格式能夠規避掉無盡的無心義的聖戰(撕逼)(也致使了Go語言的TIOBE排名較低,由於缺乏撕逼的話題)。Go的這種哲學能夠保證當一個大團隊一塊兒開發和維護一個項目時,團隊間的協做更加地標準,高效。

follow-me

本文由 www.vangoleo.com 發佈

相關文章
相關標籤/搜索