Go 環境與VARIANT 資料型別

來源:互聯網
上載者:User

環境

Go 下載安裝

推薦去 Golang 中文社區下載 Go 編譯器 官方下載

傻瓜式安裝即可

安裝完成之後開啟 cmd ,輸入go version 成功輸出版本號碼則代表安裝成功

Go 環境變數

關於 Go 的環境變數的問題 seaconch 就在剛才突然想到了比較貼切的形容方式

1. GOROOT

GOROOT 常被描述為 Go 編譯器的路徑

GOROOT 不需要我們去配,一般安裝 GO 編譯器時選擇的路徑就是 GOROOT 路徑

seaconch 補充一點:import 包時,原生 pkg 也是根據 GOROOT 來引用的

所以說使用過 npm 的同學可以理解為:全域包路徑

2. GOPATH

GOPATH 常被描述為 Go 源碼(工程)路徑

GOPATH 需要我們去手動設定,當然如果只是隨便寫個 demo 練手,不配也無妨

seaconch 認為 GOPATH 有點像 npm 的當地套件路徑

3. 補充

其實並不是說不在這兩個目錄下就不可以引入包,例如我們就可以通過 ../pkg 的方式引入並使用我們自己寫的包沒有問題,並且只要保持他們的相對路徑關係不變,那麼複製到哪裡都是可以運行起來的,缺點是不可以執行 go install 命令

Hello World 斥候

在任意位置建立一個記事本

輸入下列代碼

package mainimport "fmt"func main () {    fmt.Println("seaconch.")}

將檔案儲存為 a.go 注意尾碼名,確保不是 .txt

在 a.go 所在路徑運行 cmd 輸入 go run a.go

可以看到成功輸出了 seaconch.

輸出中文的小夥伴現在還不要著急,因為目前還不是 utf-8 編碼

常用命令

go run xxx.go

調試神器,無需 build 直接執行代碼;在特殊情況下需要批量 run,例如 go run main1.go main2.go

註: main1.go 與 main2.go 同包 並屬於 extension 關係

go build xxx.go

編譯源碼,產生可執行程式;在特殊情況下需要批量編譯,例如 go build main1.go main2.go

go install

編譯產生項目可執行檔,預設產生在 GOPATH 目錄下的 bin 目錄中

變數與資料類型

變數

define variable : var 變數名 類型

舉個栗子

  • var _name string
  • var (
  • _name string
  • _age int
  • )

simple define : 變數名 := 運算式

該方式只適用於函數內部

舉個栗子:

  • _name := "seaconch"
  • _name, _age := "seaconch", 99

註:變數名稱區分大小寫

特色

在 Go 語言當中,變數的操作有三個比較明顯的特色

  1. := 該方式只適用於未被 define 過的變數,並且只可以在 func 內部使用
  2. x, y := y, x 經典的變數交換值得問題在 Go 語言中非常簡單,只是像這樣而已
  3. _ 因為 Go 語言中,多傳回值特別常見,當我們只需要多個傳回值之中的個別值時,可以採用 name, _ := 方法() 的方式可以捨棄第二個傳回值,這種類似的方式達到想要的效果

常量

常量需要有初始值

define

舉個栗子:

const _pi float64 = 3.14 / const _version string = "v1.0"

多賦值

const (

A = 1BC = 2D

)

多賦值情況下,預設不賦值的常量使用上一個常量的值,因此 B = 1, D = 2

通過使用 iota 來表示枚舉:

const (    sunday = iota    monday    tuesday    wednesday= 88    thursday     friday = iota    saturday)

sunday -> 0

monday -> 1

tuesday -> 2

wednesday -> 88

thursday -> 88

friday -> 5

saturday -> 6

可以看出 iota 的作用了吧, iota 有一點像是一個計數器,seaconch 拋磚引玉,用這個小例子來說明其用途

整數

int 整形,會根據 cpu & ide 決定 64 / 32

uint 無符號 int

byte == uint8 可以理解為類型別名

rune == int32 可以理解為類型別名

浮點

float32 / float64 精度不同

複數跳過

布爾型

布爾型有兩點需要主要:

  1. 預設值為 false
  2. Golang 中1 與 true 0 與 false 沒有可比性

字串

截取字串:

_str := "hello seaconch."    fmt.Println(_str[:]) -> hello seaconch.    fmt.Println(_str[7:]) -> eaconch.    fmt.Println(_str[:8]) -> hello se        fmt.Println(_str[7:8]) -> e

看碼會意~

7 <= 目標字串的索引 < 8

好了,今天就到這裡吧

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.