golang 学习(七)字符 byte 和 rune类型介绍

字符 byte 和 rune类型介绍

golang中用单引号 ’ 定义字符 类型属于 int

	var  a = 'a'
	fmt.Printf("%v %T",a,a) //值是97 代表ASCII码 类型int32
	fmt.Printf("%c %T",a,a) //值是a 代表 原样    类型int32

定义一个字符串输出里面的字符

	var b = "this"
	fmt.Printf("%v %c %T",b[2],b[2],b[2]) // 105 i uint8

一个汉字占 3 个字节utf-8编码 一个字母占用 1 个字节 ASCII码

unsafe.Sizeof() 不能查看string类型的占用的存储空间 用len()

var b = "this"
fmt.Println(len(b)) // 占用4 个字节
b = "你好hello"
fmt.Println(len(b)) // 占用11个字节
var c = '国'
fmt.Printf("%v %c %T\n",c,c,c) // 22269(utf-8编码) 国 int32

byte类型

    var m = "hello world"
	for i := 0; i < len(m); i++ {
		fmt.Printf("%v(%c) ",m[i],m[i]) //104(h) 101(e) 108(l) 108(l) 111(o) 32( ) 119(w) 111(o) 114(r) 108(l) 100(d)
	}

rune 类型

	var n = "你好好  我的world"
	for _, v := range n {//rune
		fmt.Printf("%v(%c) ",v,v) //20320(你) 22909(好) 22909(好) 32( ) 32() 25105(我) 30340(的) 119(w) 111(o) 114(r) 108(l) 100(d)
	}

修改字符

	var s = "big"
	var byteStr = []byte(s)//byte类型
	byteStr[0] = 's'
	fmt.Println(string(byteStr)) //sig
	
    s = "你好的 world"
    var runeStr = []rune(s)//rune类型
    runeStr[0] = '我'
	fmt.Println(string(runeStr)) //我好的 world
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值