Golang 1 語言初識

2021-08-20 02:25:29 字數 4161 閱讀 1854

go 是乙個開源的程式語言,它能讓構造簡單、可靠且高效的軟體變得容易。

go是從

2007

年末由robert griesemer, rob pike, ken thompson

主持開發,後來還加入了

ian lance taylor, russ cox

等人,並最終於

2023年11

月開源,在

2012

年早些時候發布了

go 1

穩定版本。現在

go的開發已經是完全開放的,並且擁有乙個活躍的社群。

go語言(或稱golang)是雲計算時代的c語言。go語言的誕生是為了讓程式設計師有更高效的生產效率,go語言專門針對多處理器系統應用程式的程式設計進行了優化,使用go語言編譯的程式可以媲美c或c++**的速度,而且更加安全、支援並行程序。

開發人員在為專案選擇語言時,不得不在快速開發和效能之間做出選擇。c和c++這類語言提供了很快速的執行速度,而ruby和python這類語言則擅長快速開發。go語言在這兩者間架起了橋梁,不僅提供了高效能的語言,同時也讓開發更快速。

go 語言被設計成一門應用於搭載

web

伺服器,儲存集群或類似用途的巨型**伺服器的系統程式語言。

對於高效能分布式系統領域而言,

go 語言無疑比大多數其它語言有著更高的開發效率。它提供了海量並行的支援,這對於遊戲服務端的開發而言是再好不過了。

計算機軟體經歷了數十年的發展,形成了多種學術流派,有面向過程程式設計、物件導向程式設計、函式式程式設計、面向訊息程式設計等,這些思想究竟孰優孰劣,眾說紛紜。

除了oop

外,近年出現了一些小眾的程式設計哲學,

go語言對這些思想亦有所吸收。例如,

go語言接受了函式式程式設計的一些想法,支援匿名函式與閉包。再如,

go語言接受了以

erlang

語言為代表的面向訊息程式設計思想,支援

goroutine

和通道,並推薦使用訊息而不是共享記憶體來進行併發程式設計。總體來說,

go語言是乙個非常現代化的語言,精小但非常強大。

為了保持語言的簡潔和簡單,按照類似的語言省略常用的功能。

go語言的特性有:

在學習go

語言程式設計之前,我們需要安裝和配置好

go語言的開發環境。可以選擇線上的編譯器:

來直接執行**。

注:由於某種原因,golang官網被國內遮蔽。你可以去  索取。或是使用**來訪問外部**。

(2)本地編輯

在自己的計算機上安裝開發編譯環境。

go 語言支援以下系統:

。各個系統對應的包名:

1)unix/linux/mac os x, 和 freebsd 安裝

以下介紹了在unix/linux/mac os x, 和 freebsd系統下使用原始碼安裝方法:

tar -c /usr/local -xzf go1.10.1.linux-amd64.tar.gz
③將 /usr/local/go/bin 目錄新增至path環境變數

export path=$path:/usr/local/go/bin
注意:mac 系統下你可以使用 .pkg 結尾的安裝包直接雙擊來完成安裝,安裝目錄在 /usr/local/go/ 下。

2)windows 系統下安裝

在cmd中輸入go,如果出現如下內容,則說明安裝成功。

go語言中包含了大量用於處理go語言**的命令和工具。其中,go命令就是最常用的乙個,它有許多子命令。這些子命令都擁有不同的功能,如下所示:

還有:fmt、generate、get、install、list、run、test、tool、version、vet

go語言官網:

go中文社群:

在windows系統下進行安裝後的測試。建立工作目錄 c:\>go_workspace。 檔名: test.go,**如下:

package main

import "fmt"

func main()

注意:要想對中文的支援必須把檔案的格式變為utf-8編碼

go 語言的基礎組成有以下幾個部分:

接下來讓我們來看下簡單的**,該**輸出了"hello world!":

package main

import "fmt"

func main()

讓我們來看下以上程式的各個部分:

//1)go語言以包作為管理單位

//2)每個檔案必須先宣告包

//3)程式必須有乙個main包(重要)

package main //屬於可以執行的檔案

import "fmt" //匯入fmt模組實現輸入輸出

/*func 函式

main 主要執行函式

()引數

{}函式體

*///入口函式

func main()

入口。go有且只有乙個入口函式,main

呼叫函式

go以包作為管理單位

讓我們來看下如何編寫 go **並執行它。步驟如下:

使用 go 命令執行以上**輸出結果如下:

c:\go_workspace>go run test.go

hello, world!

// 當前程式的包名

package main

// 匯入其他包

import . "fmt"

// 常量定義

const pi = 3.14

// 全域性變數的宣告和賦值

var name = "gopher"

// 一般型別宣告

type newtype int

// 結構的宣告

type gopher struct{}

// 介面的宣告

type golang inte***ce{}

// 由main函式作為程式入口點啟動

func main()

可以通過 import 關鍵字單個匯入:

import "fmt"

import "io"

也可以同時匯入多個:

import (

"fmt",

"io"

)

使用 .呼叫:

package main

// 為fmt起別名為fmt2

import fmt2 "fmt"

func main()

省略呼叫(不建議使用):

// 呼叫的時候只需要println(),而不需要fmt.println()

import . "fmt"

前面加個點表示省略呼叫,那麼呼叫該模組裡面的函式,可以不用寫模組名稱了:

import . "fmt"

func main ()

可見性規則go語言中,使用大小寫來決定該常量、變數、型別、介面、結構或函式是否可以被外部包所呼叫。

函式名首字母小寫即為 private:

func function() {}
函式名首字母大寫即為 public:

func function() {}
技術交流論壇:

go語言就是golang 1天學會 基礎篇

檔名稱 版本號作者 qq版本 go語言就是golang 1天學會 基礎篇 v1.0.3 學生宮布 8416837 go1.13.4 windows amd64 go環境 vscode 基礎 web等 go web 生成 基於框架開發 異常處理 控制台遊戲 解決報錯 介面 實現介面函式 code pa...

深入學習golang 1 陣列與切片

陣列宣告 arraytype arraylength elementtype 例如 var a 32 int var b 3 5 int 在go和c中,陣列的工作方式有幾個重要的差別。在go中,1 陣列是值型別。將乙個陣列賦值給另乙個,會拷貝所有的元素。2 如果你給函式傳遞乙個陣列,其將收到乙個陣列...

GoLang 1(第乙個Go程式)

1 windows7搭建go開發環境 參考 2 第乙個go程式 package main import fmt func main 說明 1 go原始檔的開頭都是乙個package,表示go 所屬的包。包是go語言裡最基本的分發單位。2 要生成go可執行程式,必須建立乙個名字為main的包,並且在該...