指标

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


<<:  IOS、Python自学心得30天 Day-7 TensorFlow 结果预测

>>:  [Day 10] .Net Task 底层(3)

DAY 18 Big Data 5Vs – Variety(速度) EMR (1)

Amazon Elastic MapReduce(EMR)是可以在EC2 instance 或 Am...

Know all about types of research papers in Australia

Know all about types of research papers in Austral...

[JS] You Don't Know JavaScript [Scope & Closures] - Using Closures?

前言 目前为止我们都专注在解释辞法范围,以及他会对程序中的变量与使用产生什麽影响,本章节会将角度转移...

Day.13 「初步学习 Javascript 基础篇」 —— Javascript 宣告变数 与 基本型别

前面已经大略介绍了 HTML 和 CSS 的入门知识了,接着我们要来认识 Javascript,来...

企业资料通讯Week6 (1) | DNS(网域名称系统)[二]

DNS Message DNS 的讯息传递也是两种:Query 与 Reply(就是要求与回覆),它...