国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Golang - go切片的copy和view的使用方法

go切片的copy和view的使用方法

2020-05-31 11:30pureyb Golang

這篇文章主要介紹了go切片的copy和view的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

語義理解切片

go 語言中的切片是 go語言的一個特色,從語義上來說,切片就是把一個整體的東西切分成小的部分,那么對于語言中的切片也是同理。

舉個例子看如下代碼:

?
1
2
3
4
5
6
7
8
9
package main
import "fmt"
func main() {
 arr := [...]int{0, 1, 2, 3, 4, 5, 6, 7}
 fmt.Println("arr[2:6]:", arr[2:6]) // 從下標(biāo)2到下標(biāo)6
 fmt.Println("arr[:6]:", arr[:6]) // 從下標(biāo)0到下標(biāo)6
 fmt.Println("arr[2:]:", arr[2:]) // 從下標(biāo)2到最后
 fmt.Println("arr[:]:", arr[:]) // 全部
}

輸出結(jié)果為:

arr[2:6]: [2 3 4 5]
arr[:6]: [0 1 2 3 4 5]
arr[2:]: [2 3 4 5 6 7]
arr[:]: [0 1 2 3 4 5 6 7]

這里可以很明確的看出,我們想要 arr 數(shù)組的哪一部分,我們就切哪一部分。

當(dāng)然,如果僅僅知道切片是這么用的當(dāng)然還不夠,我們應(yīng)該更加深入的理解,如:

對原數(shù)組的 copy 還是 view 。

對于 go 語言的數(shù)組,copy 和 view 是同時都存在的。

  • copy 就是使用這個數(shù)組的時候我將這個數(shù)組拷貝一份,這樣對于數(shù)組的增刪改,是不會改變原數(shù)組的值的
  • view 由數(shù)組執(zhí)行切片所返回的對象是一個 view,即視圖,若我們在視圖上操作數(shù)組,會改變原數(shù)組,

copy 場景

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package main
 
import (
 "fmt"
)
 
func updateArr(arr [5]int) {
 arr[0] = 100
 fmt.Println("修改后的arr:", arr)
}
 
func main() {
 arr3 := [...]int{2, 4, 5, 6, 7}
 fmt.Println("原來的:", arr3)
 updateArr(arr3)
 fmt.Println("再次查看原始的:", arr3)
}

輸出結(jié)果:

原來的: [2 4 5 6 7]
修改后的arr: [100 4 5 6 7]
再次查看原始的: [2 4 5 6 7]

如上代碼可以看到,我們在 updateArr 里面修改了下標(biāo)為 0 的值,但是我們輸出原始數(shù)組的時候,并沒有變。這就是對數(shù)組 copy。

view 場景

?
1
2
3
4
5
6
7
8
9
10
11
12
func updateArr(arr []int) {
 arr[0] = 100
 fmt.Println("修改后的arr:", arr)
}
 
func main() {
 arr3 := [...]int{2, 4, 5, 6, 7}
 fmt.Println("原來的:", arr3)
 // 使用切片
 updateArr(arr3[:])
 fmt.Println("再次查看原始的:", arr3)
}

輸出結(jié)果:

原來的: [2 4 5 6 7]
修改后的arr: [100 4 5 6 7]
再次查看原始的: [100 4 5 6 7]

為什么 view 能夠改變原數(shù)組

雖然 Slice 本身是值類型,但是它內(nèi)部使用了對數(shù)組的指針引用,所以修改切片數(shù)據(jù),會將數(shù)組原有數(shù)據(jù)修改掉。

當(dāng)然,在理解上面的同時,一定要知道 go 是如何定義一個切片的

?
1
var b []int

所以,在 updateArr 這個函數(shù)傳參的時候 arr []int 是傳切片進(jìn)去。不然會報錯。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://learnku.com/articles/32171

延伸 · 閱讀

精彩推薦
  • Golanggo語言制作端口掃描器

    go語言制作端口掃描器

    本文給大家分享的是使用go語言編寫的TCP端口掃描器,可以選擇IP范圍,掃描的端口,以及多線程,有需要的小伙伴可以參考下。 ...

    腳本之家3642020-04-25
  • Golanggolang如何使用struct的tag屬性的詳細(xì)介紹

    golang如何使用struct的tag屬性的詳細(xì)介紹

    這篇文章主要介紹了golang如何使用struct的tag屬性的詳細(xì)介紹,從例子說起,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看...

    Go語言中文網(wǎng)11352020-05-21
  • GolangGolang中Bit數(shù)組的實現(xiàn)方式

    Golang中Bit數(shù)組的實現(xiàn)方式

    這篇文章主要介紹了Golang中Bit數(shù)組的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    天易獨(dú)尊11682021-06-09
  • Golanggolang 通過ssh代理連接mysql的操作

    golang 通過ssh代理連接mysql的操作

    這篇文章主要介紹了golang 通過ssh代理連接mysql的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    a165861639710342021-03-08
  • GolangGolang通脈之?dāng)?shù)據(jù)類型詳情

    Golang通脈之?dāng)?shù)據(jù)類型詳情

    這篇文章主要介紹了Golang通脈之?dāng)?shù)據(jù)類型,在編程語言中標(biāo)識符就是定義的具有某種意義的詞,比如變量名、常量名、函數(shù)名等等,Go語言中標(biāo)識符允許由...

    4272021-11-24
  • Golanggo日志系統(tǒng)logrus顯示文件和行號的操作

    go日志系統(tǒng)logrus顯示文件和行號的操作

    這篇文章主要介紹了go日志系統(tǒng)logrus顯示文件和行號的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    SmallQinYan12302021-02-02
  • Golanggolang的httpserver優(yōu)雅重啟方法詳解

    golang的httpserver優(yōu)雅重啟方法詳解

    這篇文章主要給大家介紹了關(guān)于golang的httpserver優(yōu)雅重啟的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,...

    helight2992020-05-14
  • Golanggolang json.Marshal 特殊html字符被轉(zhuǎn)義的解決方法

    golang json.Marshal 特殊html字符被轉(zhuǎn)義的解決方法

    今天小編就為大家分享一篇golang json.Marshal 特殊html字符被轉(zhuǎn)義的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    李浩的life12792020-05-27
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 在线a视频网站 | 精品一区av| 久久丁香 | 久久精品电影 | 久色成人 | 欧美一区二区三区精品 | 亚洲伦理一区 | 精品在线看 | 久久a国产 | 亚洲精品一区二区三区蜜桃久 | 97精品国产97久久久久久粉红 | 超碰免费观看 | 最新国产在线 | 精品无码三级在线观看视频 | 久久国产亚洲精品 | 国产精品一区二区三区四区 | 亚洲一区二区精品在线观看 | 国产精品18久久久 | 天天射天天干 | 成人性毛片 | 黄色二区 | 一色屋精品久久久久久久久久 | 久久久免费视频看看 | 欧美视频二区 | 中文字幕亚洲精品 | 久久青| 精品福利片| 二区影院| www国产精品 | 亚洲精品久久久蜜桃 | 国产精品一级毛片在线 | 免费网站看v片在线a | 成人毛片在线观看 | 欧美日韩中文字幕 | 成人羞羞网站 | 欧美一区二区在线视频 | 色综合中文 | 伊人婷婷| 日本三级韩国三级三级a级中文 | 免费一级毛片 | 色狠狠一区 |