oracle中怎么判断全为空格_golang中怎么判断一个变量是array还是slice?

区分数组和切片的区别:

  • 1.数组是固定长度的,长度一旦确定无法修改,无法变长也无法变短。而切片容量大小是可以伸缩的
  • 2.数组是值类型,切片是指针类型

进一步代码举例说下两者的区别:

(1)通过反射弧判断Array还是Slice

func main() {arr1 := [3]int{1,2,3}        //指定长度Arrayslice1 := []int{1,2,3}       //不指定长度//注:Slice就是长度可变的Array//反射弧判断是Array还是Slicefmt.Println(reflect.TypeOf(arr1).Kind())fmt.Println(reflect.TypeOf(slice1).Kind())}

输出:

arrayslice

(2)指定长度和不指定长度初始化的不同

  arr1 :=[3]int{1,2,3}        //指定长度Arrayarr2 := [...]int{1,2,3}      //不指定长度Arrayslice1 :=make([]int,3)  //指定长度Sliceslice2 := []int{1,2,3}     //不指定长度Slice

(3)函数传值

Array值传递

func main() {arr1 := [3]int{1, 2, 3}func(arr [3]int) {arr[0] = 7fmt.Println(arr)}(arr1)fmt.Println(arr1)}

输出:

[7 2 3][1 2 3]

Slice指针传递

func main() {slice1 := []int{1, 2, 3}func(arr []int) {arr[0] = 7fmt.Println(arr)}(slice1)fmt.Println(slice1)}

输出:

[7 2 3][7 2 3]
bf02b435fc9313e56169bb45f0dba34c.png

聪明出于勤奋,天才在于积累。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值