第五章-go中的字符串

前言

下面将会介绍一个我们日常的开发中最长使用的数据类型——字符串。在go中,字符串类型名字为string,它和Java中的String类似,也是一个值不可变类型,内部是一个 UTF-8 字节数组。下面会通过一些例子展示gostring的特性

特性

go中的string具有以下特性:

  1. 默认值为空字符串 “”
  2. 内部是一个UTF-8 字节数组,可以使用索引访问某字节
  3. 初始化后的值不可变(这里的不可变类似Java中的String,如果需要修改值,就会重新分配一个新的数组)

默认值

验证string默认值为空字符串的例子很简单,这一点和Java中的String(默认值为null)不同。

package main

import "fmt"

func main() {
	var str string // 以默认值初始化
	fmt.Println("str default:",str) // 输出默认值
	fmt.Println("str default length:",len(str)) //输出默认值长度
}

使用索引访问

由于string底层是一个UTF-8 字节数组,所以可以使用索引访问string中的元素。

package main

import "fmt"

func main() {
	str := "test"
	str0 :=str[0] // 底层byte数组第一个元素
	fmt.Println("str0:",str0)
	fmt.Println("string(str0):",string(str0)) // 将byte转成字符串

	for i:=0;i<len(str);i++{ // 遍历每个元素,并转化为字符串输出
		fmt.Println(i,":",string(str[i]))
	}
}

值不可变

这里的值不可变指的是不能修改底层数组中的元素,只能通过重新分配一个新的数组来修改string的值,例如下面的例子就无法通过编译。

	str  := "test"
	str[0] = 'a'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值