記go和python中的slice乙個簡單區別

2021-07-30 14:53:48 字數 968 閱讀 7241

python中的slice是在原有基礎上拷貝乙份。go中的slice則是指向生成它的陣列/切片,切最長長度不會超限。

#陣列為1,2,3,4

>>> l=[1,2,3,4]

#生成乙個內容為2,3的切片

>>> slice1=l[1:3]

>>> print(slice1)

[2, 3]

#修改其中乙個值,檢視切片和list的值是否有變化

>>> slice1[1]=5

>>> print(slice1)

[2, 5]

>>> print(l)

[1, 2, 3, 4]

最後發現單獨修改了slice切片,但是list值沒有變化,說明生成的slice是生成的乙份拷貝,跟原有的list不是相同記憶體

package main

import "fmt"

func main()

slice := data[2:4]

fmt.println(slice)

fmt.println(data)

data[2] = 666

slice[1] = 999

fmt.println(slice)

fmt.println(data)

}

輸出

feiqianyousademacbook-pro

:goyousa$ go

runslice

.go[2 3]

[0 1 2 3 4 5 6 7 8 9]

[666 999]

[0 1 666 999 4 5 6 7 8 9]

可以看出來,修改陣列,如果切片的值在其中,會被修改;反之,修改切片的值,其基於的陣列的值也會被修改。

實際上可以理解為,切片和陣列共用同一片記憶體。

Python和Go語言的區別

什麼是python?python是一種功能強大的高階程式語言,主要用於科學和工程計算。它是一種高效的語言,優雅務實,簡單而強大,適合新手和專業人士的程式設計。python支援多種程式設計範例,並提出了乙個大型標準庫,包括物件導向,命令式,功能性和程式性。go是什麼?go是一種通用程式語言,由goog...

使用者密碼加密在python和go中的應用和統一

目的是python專案遷移到go時,資料庫不用動,使用者原來的密碼資訊都可以使用 web框架是flask,加密方法直接用werkzeug.security,預設演算法 pbkdf2 sha256 鹽取預設8位,迭代次數用150000,密碼儲存格式為pbkdf2 method iterations s...

python 程式中呼叫go

雖然python優點很多,但是有乙個致命的缺點就是執行速度太慢,那麼python程式需要一些計算量比較大的模組時一般會呼叫c或者c 的 來重寫,但是c c 編寫 代價太高,耗費太多的人力,開發周期太長,那麼就想到來乙個折中的方法是用golang語言。雖然golang效能比不上c c 但是golang...