Golang
指標
研究到一半突然發現了一個很久很久沒看到的詞,「指標」!
我印象中 印象中 印象中,指標大概有減少一直複製而導致花費記憶體的優點,之所以打三次是因為真的是”印象中”,在某些case下指標真的會比較省效能,至於是不是通例,可能要請教常使用的人才知道了。
有C 語言的就會知道「指標」這的東西,那直接上個範例來看看情況是如何吧!
package main
import (
"fmt"
)
func main() {
n := 2
// Reference the adress from the variable.
nPtr := &n
// Print out the address.
fmt.Println(nPtr)
fmt.Println(*nPtr)
*nPtr = 4
fmt.Println(nPtr)
fmt.Println(*nPtr)
n= 8
fmt.Println(nPtr)
fmt.Println(*nPtr)
}
*表示這個變數是個指標
*變數 = 宣告一個指標變數
&代表「把這個變數的地址取出來」
所以我們可以看出 nPtr跟*nPtr是不同的東西!
也可以動態記憶體配置
package main
import (
"fmt"
)
func main() {
nPtr := new(int)
// Assign the value indirectly.
*nPtr = 2
// Print out the address.
fmt.Println(nPtr)
fmt.Println(*nPtr)
*nPtr = 4
fmt.Println(nPtr)
fmt.Println(*nPtr)
}
本篇原本還想繼續加上說明指標的好處,但後來想想還是有興趣的朋友自行去google好了,深怕解釋的不夠好
參考資料
https://zh.wikipedia.org/wiki/%E6%8C%87%E6%A8%99_(%E9%9B%BB%E8%85%A6%E7%A7%91%E5%AD%B8)
https://programming.im.ncnu.edu.tw/Chapter9.htm