Hike News
Hike News

Go初識-day1(開發環境及簡易定義函數及變量)

開發環境搭建

  • 網址:https://golang.org/dl
  • 根據操作系統選擇對應Golang的安裝包
  • IDE選用JetBrains的GoLand
    • 要是跳出GOPATH is empty的情況則增加新專案的src目錄的上一層資料夾
  • 新建project 父級目錄/src/ —->code文件統一放在src目錄底下

認識go語言

  1. go語言是針對其他語言的痛點進行設計
  2. 加入併發編程原生支持(天然併發)
  3. 為大數據,微服務,並發而生的同用編程語言
  4. 項目轉型的首選語言
  5. 沒有對象沒有繼承多態,沒有泛型,沒有try/catch
  6. 有接口,函數式編程,CSP併發模型(goroutine + channel)

introduction

  1. Go語言與Python語言非常類似,一個文件代表一個包(package)
  2. Go語言所有的庫文件都以包為組合單位,所以皆須導入包名(package name)才能使用
  3. Go定義變量必須要有明確的類型與c語言同屬於強類型語言,才可進行靜態編譯,運行效率高
  4. Go中可不用 ; (分號) 結尾 —->Go編譯時會自動加 分號

實現hello world

1
2
3
4
5
6
7
8
9
package main  /*說明其為package,若希望編譯完為 可執行文件 package name必須為main
若只是單純的 庫文件,則包名可以自定義*/
import(
"fmt" // 將"字符串格式化輸入輸出"的package -- "fmt"系統庫 使用import導入
)

func main(){ //main函數為 "入口函數" (與上面的包名"不一樣"),程序執行時皆由main函數開始執行,且左大括號必須和函數名同一行
fmt.Println("Hello world!") //調用函數的格式為 "庫文件.函數(參數)" [1]
}

[1] 調用函數,大部分都需要導入包(package)文件

  • go語言以包(package)作為管理單位
  • 每個文件必須先聲明包
  • 每個程序必須有一個main包

運行程序

cmd切換到go文件所在的目錄下
使用 go run 命令運行.go腳本
利用go run命令執行.go腳本不需要編譯

1
2
> go run helloworld.go      
Hello world!
  • 使用go run命令時,要將main函數有用到的函數全部加載進去,函數有可能存在別的文件中,因此就必須go run多個文件
1
> go run main.go hello.go

調適工具delve安裝

於cmd底下執行

1
go get github.com/derekparker/delve/cmd/dlv

定義變量

var 變量名 類型
example:

1
var I_am_int_var int

定義函數並調用

  1. 定義函數必須以func開頭
  2. 格式
1
2
3
4
5
func 函數名(參數a 類型, 參數b 類型) 函數返回的類型 {
var 返回變量名 類型
(運算)
return 返回變量名
}
  1. 左大括號{ 必定要在func函數定義的最後面 不能換行

example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package main

import "fmt"

func add (a int, b int) int {
var sum int
sum = a + b
return sum
}

func main() {
var c int
c = add(100, 200)
fmt.Println("100+200=", c)
}

result:
1
100+200= 300