Go中string的特殊用法[…]string

Go中string的特殊用法[…]string

最近在学习Go语言中遇到了string特殊的一种用法,记录一下,直接上代码,如有错误,请朋友们指出

import "fmt"

func Test02() {
	var str = [...]string{
		1: "Hello",
		3: "World",
		5: "My",
		6: "Name",
		7: "is",
		8: "Conan",
	}
	fmt.Println(str)
	for i,v := range str {
		fmt.Println(i, ":", v)
	}
	fmt.Println(str[1])
	fmt.Println(str[2])
	fmt.Println(str[5])
	fmt.Println("len is ", len(str))
}

这样定义之后,初看上去有点想字典或者map,但是其实不然,它根据索引值对应字符串的值,字串数组的长度等于最后一个字符串的索引值+1,因为索引是从0开始。另外这样定义字符串数组时,数组中最后要加上逗号,否则编译不通过。没有添加索引值的字符串,默认值为空,例如索引为0,2,4的对应的字符串,代码运行结果如下:

[ Hello  World  My Name is Conan]
0 :
1 : Hello
2 :
3 : World
4 :
5 : My
6 : Name
7 : is
8 : Conan
Hello

My
len is  9

通常情况下我们定义字符串数组,如下:

	var str1 = []string{"My", "Name", "is", "Conan"}
	fmt.Printf("%v\n", str1)
	for index, value := range str1 {
		fmt.Printf("%d : %s\n", index, value)
	}
	fmt.Println("len is", len(str1))
[My Name is Conan]
0 : My
1 : Name
2 : is
3 : Conan
len is 4

[]string这样定义之后,字符串数组的长度是根据之后初始化而定的,而[…]string则是根据索引值而定。
分享就这些,希望以后遇到这种情况的朋友们不要一脸懵逼。如果疑问或不同意见,请留言。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值