go語(yǔ)言中的指針和地址值,在使用上常常具有迷惑性,主要鋒絕拿是其特殊的宏汪*、符號(hào)的使用,可能會(huì)讓你摸不透,本文希望能講清楚go語(yǔ)言的指針(pointer)和值(value)。
專注于為中小企業(yè)提供網(wǎng)站制作、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)宿遷免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
這里先簡(jiǎn)單銀搭的對(duì)指針和地址值概念做一個(gè)定義:
這是因?yàn)間o方法傳遞參數(shù)的方式導(dǎo)致的,go方法函數(shù)傳遞參數(shù)傳遞的是一個(gè)拷貝,看看下面的程序會(huì)輸出什么?
答案是8,而不是9,因?yàn)锳ddAge函數(shù)修改的是學(xué)生的一個(gè)備份,而不是原始的學(xué)生對(duì)象
如果你想正確的給學(xué)生年齡增加的話,函數(shù)傳遞的需要是這個(gè)值的指針,如下所示:
需要注意的是,這里我們的指針傳遞的仍然是一個(gè)拷貝,比如,如果你將s賦值給另外一個(gè)指針地址,不會(huì)影響原有的指針,這點(diǎn)可以自行實(shí)踐下。
那在使用go語(yǔ)言開(kāi)發(fā)的時(shí)候,何時(shí)該用指針何時(shí)改用地址值呢?比如考慮以下場(chǎng)景:
簡(jiǎn)單原則: 當(dāng)你不確定該使用哪種的時(shí)候,優(yōu)先使用指針
如果考慮在數(shù)組、切片、map等復(fù)合對(duì)象中使用指針和值,比如:
很多開(kāi)發(fā)者會(huì)認(rèn)為b會(huì)更高效,但是被傳遞的都是一個(gè)切片的拷貝,切片本身就是一個(gè)引用,所以這里被傳遞的其實(shí)沒(méi)有什么區(qū)別。
對(duì)于指針和地址值的使用,大家需要牢記的一點(diǎn)就是go數(shù)據(jù)傳遞的不可變性,活學(xué)活用此特點(diǎn),在無(wú)狀態(tài)函數(shù)中此特性非常有用。
golang原生數(shù)據(jù)類型:按長(zhǎng)閉旁度:int8(-128-127)、int16、int32、int64。
布爾型:布爾型的值只可以是常量true或者false。一個(gè)簡(jiǎn)單的例子:varbbool=true。
數(shù)字類型:整型int和浮點(diǎn)型float32、float64,Go語(yǔ)言支持整型和浮點(diǎn)型數(shù)字,并且支持復(fù)數(shù),其中位悄衫的運(yùn)算采用補(bǔ)碼。
字符串類轎運(yùn)橡型:字符串就是一串固定長(zhǎng)度的字符連接起來(lái)的字符序列。Go的字符串是由單個(gè)字節(jié)連接起來(lái)的。Go語(yǔ)言的字符串的字節(jié)使用UTF-8編碼標(biāo)識(shí)Unicode文本。
派生類型:包括:(a)指針類型(Pointer)(b)數(shù)組類型?結(jié)構(gòu)化類型(struct)(d)Channel類型(e)函數(shù)類型(f)切片類型(g)接口類型(interface)(h)Map類型。
可以的。Go語(yǔ)言作為一種全新的仔肢編程語(yǔ)言喚培,它具有強(qiáng)大的數(shù)據(jù)處理能力,并支持各種數(shù)念鏈?zhǔn)罁?jù)庫(kù)的調(diào)用、快速處理和分析大量數(shù)據(jù),因此go語(yǔ)言是開(kāi)發(fā)大數(shù)據(jù)腳本的首選之一。
網(wǎng)站名稱:go語(yǔ)言cputs Go語(yǔ)言中文網(wǎng)
當(dāng)前地址:http://www.chinadenli.net/article8/ddpgsip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、面包屑導(dǎo)航、網(wǎng)站排名、云服務(wù)器、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)