[Go 02] GO 新手上路與概念筆記

藍色區塊

開始寫GO

分享自己初學GO時看的教學文章,安裝完GO環境之後,就可以撰寫自己第一支GO的程式了,網路上的系列說明很多很詳細,就不重複撰文了,以下則是自己收藏很有用的網路文章。

個人筆記整理

筆記 Go 的基本类型

bool,string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte // uint8 的别名
rune // int32 的别名// 表示一个 Unicode 码点
float32 float64
complex64 complex128
https://tour.go-zh.org/basics/11

匿名欄位

1
2
3
4
5
6
7
8
9
10
type User struct {
Name string
}
type Person struct {
User //匿名欄位
ID string
}

ss := Person{User: User{Name: "123"}, ID: "123"}
fmt.Print("ss", ss.Name)

筆記 Go的參數傳遞

傳值的意思是:函式傳遞的總是原來這個東西的一個副本,一副拷貝。

  • pass by value
    嚴格來說,Go只有傳植方式,會複製一個新的變數,且分配新的memory位址。
    pass by pointer (或稱 called by reference,但其實不是)
    指標方式則會複製一個新的指標,但指向的memeory位址是一樣的,但是是兩個不同的指標。
  1. 通常預期參數被修改,應傳指標。
  2. 在go裡pass by value開銷很小
  3. 迷思:Map/chan等其實是指標型別,因此會被修改,是種引用型別(reference types)[不是指call by reference],仍是pass by value

出自以下參考文章:

筆記 理解 Go 语言中的方法和接收者

  • 值接收者,是一个副本,方法内部無法對其真正的接收者做更改;
  • 指针接收者,是接收者的引用,對這個引用的修改可以影響真正的接收者。

理解 Go 语言中的方法和接收者

筆記 go中的資料結構介面-interface

go中的資料結構介面-interface

interface gitbook

筆記 搞定Go Mock 單元測試

搞定Go單元測試(二)——mock框架(gomock)

[Go 02] GO 新手上路與概念筆記

https://minilabmemo.github.io/2020/05/01/02-go-start/

作者

Mini Lab Memo

發表於

2020-05-01

更新於

2023-02-16

許可協議

評論