python调用golang 数组_Golang数据类型 数组(arry)

前言

前面学习了Go数据类型中的数字、字符串,下面看看Go中是否有Python中的list、dict等复合数据类型?

需要注意的是在Go中数组是可变类型+值(拷贝)类型,而go中切片是引用类型;

数组声明之后它里面的元素是可以被修改,如果把1个数组变量引用到1个新的变量,那么这个新的变量会重新拷贝一份旧数组的数组。

Python中的list是可变+引用数据类型

llist1 = ["A", "B", "C"]

llist2=llist1

llist1[0]= "a"llist2[2] = "b"

print(llist1, id(llist1))print(llist2, id(llist2))"""['a', 'B', 'b'] 42775624

['a', 'B', 'b'] 42775624"""

Python的list可变+引用

Golang中的arry是可变+拷贝数据类型

package main

import"fmt"func main() {

arry1 := [3]string{"A", "B", "C"} //注意声明arry变量时不要忘记[指定长度],否则声明的是slice变量

arry2 :=arry1

arry1[0] = "a"arry2[1] = "b"

//说明go中的arry不是引用类型,单属于可变数控类型可以原处修改

fmt.Printf("%v %p\n", arry1, &arry1)

fmt.Printf("%v %p\n", arry2, &arry2)

}/*[a B C] 0xc000062330

[A b C] 0xc000062360*/

Golang的arry可变+拷贝

Python的list切片之后会开辟1开新的内存生产1个新的list数据类型

nameList=["张","根"]

firstName=nameList[0]

lastName=nameList[1]print(firstName)print(lastName)#Python的list切片会开辟1块新的内存,创建1个新的列表。

nameSlice=nameList[0:2]

nameSlice[0]="Martin"nameSlice[1]="Zhang"

print(nameList,nameSlice)print(type(nameList),type(nameSlice))print(id(nameList),id(nameSlice))'''张

['张', '根'] ['Martin', 'Zhang']

42632648 42632712'''

Python的list切片

Golang的arry切片之后会开辟1个新的内存生成1个slice数据类型

package main

import ("fmt"

"reflect")

func main() {

nameArry:=[2]string{"张","根"}//1.获取数组的长度

fmt.Println(len(nameArry))//2.通过数组索引取值

firstName:=nameArry[0]

lastName:=nameArry[1]

fmt.Println(firstName)

fmt.Println(lastName)//3.数组组切片

nameSlice:=nameArry[0:2]

nameSlice[0]="Martin"nameSlice[1]="Zhange"fmt.Println(nameArry,nameSlice)//[Martin Zhange] [Martin Zhange]

fmt.Println(reflect.TypeOf(nameArry),reflect.TypeOf(nameSlice)) //[2]string(数组类型)-------- []string(切片类型)

fmt.Printf("切片之前的内存地址:%p,切片之后的slice内存地址:%p--",&nameArry,nameSlice)

}

Golang的Arry切片

package main

import "fmt"

func main() {

//声明1个字符串变量

var name string

fmt.Println(name)

//声明1个数组变量

var a1 [3]int

fmt.Println(a1)

//声明1个切片类型的变量

var s1 []int

fmt.Println(s1 == nil)

//声明二维数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值