成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Golang數(shù)組怎么傳遞

這篇文章主要介紹了Golang數(shù)組怎么傳遞,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

自流井網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站開(kāi)發(fā)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)

Golang數(shù)組的傳遞詳解

今天小編就為大家分享一篇關(guān)于Golang數(shù)組的傳遞詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

概念介紹

數(shù)組與切片

數(shù)組是具有相同唯一類型的一組已編號(hào)且長(zhǎng)度固定的數(shù)據(jù)項(xiàng)序列。數(shù)組長(zhǎng)度最大為2Gb,它是值類型。切片是對(duì)數(shù)組一個(gè)連續(xù)片段的引用,所以切片是一個(gè)引用類型。

按值傳遞和按引用傳遞

Go語(yǔ)言中函數(shù)的參數(shù)有兩種傳遞方式,按值傳遞和按引用傳遞。Go默認(rèn)使用按值傳遞來(lái)傳遞參數(shù),也就是傳遞參數(shù)的副本。在函數(shù)中對(duì)副本的值進(jìn)行更改操作時(shí),不會(huì)影響到原來(lái)的變量。

按引用傳遞其實(shí)也可以稱作”按值傳遞”,只不過(guò)該副本是一個(gè)地址的拷貝,通過(guò)它可以修改這個(gè)值所指向的地址上的值。

Go語(yǔ)言中,在函數(shù)調(diào)用時(shí),引用類型(slice、map、interface、channel)都默認(rèn)使用引用傳遞。

數(shù)組傳遞時(shí)的缺點(diǎn)

一般情況下,傳遞指針的消耗比傳遞副本的少,尤其是當(dāng)數(shù)組特別大時(shí)。具體原因是:

值傳遞需要完整的復(fù)制初始數(shù)組并將這份拷貝放到棧中,這將耗費(fèi)大量運(yùn)行時(shí)間,因而值傳遞方式的效率比較低。

初始數(shù)組的拷貝需要占用額外的內(nèi)存空間(棧中的內(nèi)存)

編譯程序需要專門(mén)產(chǎn)生一部分用來(lái)復(fù)制初始數(shù)組的代碼,這將使程序變大。

如何避免

如上面介紹的,有兩種方法,第一種利用指針,即引用傳遞;第二種使用切片,因?yàn)榍衅且妙愋停J(rèn)會(huì)使用引用傳遞。

使用指針進(jìn)行傳遞

package main
import "fmt"
func main() {
  var arr = [5]int{1, 2, 3, 4, 5}
  fmt.Println(sum(&arr))
}
func sum(arr *[5]int) int {
  s := 0
  for i := 0; i < len(arr); i++ {
    s += arr[i]
  }
  return s
}

使用切片進(jìn)行傳遞

package main
import "fmt"
func main() {
  var arr = [5]int{1, 2, 3, 4, 5}
  fmt.Println(sum(arr[:]))
}
func sum(arr []int) int {
  s := 0
  for i := 0; i < len(arr); i++ {
    s += arr[i]
  }
  return s
}

最后一種方法通常比較常用。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享Golang數(shù)組怎么傳遞內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!

當(dāng)前文章:Golang數(shù)組怎么傳遞
URL鏈接:http://jinyejixie.com/article14/pocige.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、商城網(wǎng)站、App設(shè)計(jì)、網(wǎng)站改版品牌網(wǎng)站建設(shè)、網(wǎng)站收錄

廣告

聲明:本網(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)

微信小程序開(kāi)發(fā)
黔西| 白河县| 竹北市| 宿州市| 乌兰浩特市| 外汇| 浮山县| 清流县| 从化市| 珠海市| 珠海市| 镶黄旗| 防城港市| 罗平县| 进贤县| 吉林省| 平安县| 龙口市| 瓮安县| 丰台区| 成武县| 古浪县| 通辽市| 白山市| 东海县| 舟山市| 柘城县| 长沙县| 确山县| 平度市| 将乐县| 建阳市| 大名县| 盐津县| 莱芜市| 东辽县| 都兰县| 玉山县| 普陀区| 元阳县| 池州市|