指標

Go 語言指標:參照、取值、傳遞方式。

Pointer 基礎

Go Pointer
  • &Reference - 對變數取得記憶體位址
  • *Dereference - 取 Pointer 的值,也就是變數所在記憶體位址的值
var year int = 2021
var p *int = &year
fmt.Println("&year = ", &year)
fmt.Println("p = ", p)

宣告指標

var <pointer_name> *<data_type>

var ptr_i *int

初始化指標

var <pointer_name> *<data_type> = &<variable_name>

Passing by Value

所有基本型別預設為值傳遞:

  • int
  • float
  • bool
  • string
  • array

Passing by Reference

以下型別預設為參照傳遞:

  • Slices
  • Maps
  • Channels
  • Pointers
  • Functions