GO语言入门学习之基本数据类型字符串
目录
字符串字符串转义符byte和rune类型修改字符串类型转换总结字符串
Go语言中的字符串以原生数据类型出现。 Go 语言里的字符串的内部实现使用UTF-8编码。 字符串的值为双引号(")中的内容,可以在Go语言的源码中直接添加非ASCII码字符
GO语言中字符串是用双引号包裹的
GO语言中单引号包裹的是字符
// 字符串 s := "Hello 中国" // 单独的字母、汉字、符合表示一个字符 c1 := "h" c2 := "1" c3 := "中" // 字节:1字节=8Bit(8个二进制位) // 1个字符"A"=1个字节 // 1个utf8编码的汉字"中"= 一般占3个字节
字符串转义符
转义符 含义
\r 回车符(返回行首)
\n 换行符(直接跳到下一行的同列位置)
\t 制表符
" 单引号
" 双引号
\ 反斜杠
字符串的常用操作
strings.HasPrefix,strings.HasSuffix 前缀/后缀判断strings.Index(),strings.LastIndex() 子串出现的位置strings.Join(a[]string, sep string) join操作方法 介绍
len(str) 求长度
+或fmt.Sprintf 拼接字符串
strings.Split 分割
strings.contains 判断是否包含
package main import ( "fmt" "strings" ) // 字符串 func main(){ // \ 本来是具有特殊含义的,告诉程序\就是一个单纯的\ path := "\"E:\\36期Python全栈开发资料\\Administrator(8E5370323193)\\预习(2)\"" path1 := ""E:\\36期Python全栈开发资料\\Administrator(8E5370323193)\\预习(2)"" fmt.Println(path) fmt.Println(path1) s := "I"m ok" fmt.Println(s) // 多行的字符串 s2 := ` 世情薄 人情恶 雨送黄昏花易落 ` fmt.Println(s2) s3 := `E:\36期Python全栈开发资料\Administrator(8E5370323193)\预习(2)` fmt.Println(s3) // 字符串相关操作 fmt.Println(len(s3)) // 字符串拼接 name := "理想" world := "远大" ss := name + world fmt.Println(ss) ss1 := fmt.Sprintf("%s%s", name, world) // fmt.Printf("%s%s", name, world) fmt.Println(ss1) // 分割 ret := strings.Split(s3, "\\") fmt.Println(ret) // 包含 fmt.Println(strings.Contains(ss, "理想")) // 前缀 fmt.Println(strings.HasPrefix(ss, "理想")) // 后缀 fmt.Println(strings.HasSuffix(ss, "理想")) s4 := "abcded" fmt.Println(strings.Index(s4, "c")) fmt.Println(strings.LastIndex(s4, "c")) fmt.Println(strings.Index(s4, "d")) fmt.Println(strings.LastIndex(s4, "d")) // 拼接 fmt.Println(strings.Join(ret, "+")) }
byte和rune类型
字符用单引号(’)包裹起来
Go 语言的字符有以下两种:
uint8类型,或者叫 byte 型,代表了ASCII码的一个字符。rune类型,代表一个 UTF-8字符。rune类型实际是一个int32字符串底层是一个byte数组,可以和[]byte类型相互转换。字符串是不能修改的 字符串是由byte字节组成,所以字符串的长度是byte字节的长度。 rune类型用来表示utf8字符,一个rune字符由一个或多个byte组成。
修改字符串
要修改字符串,需要先将其转换成[]rune或[]byte,完成后再转换为string。无论哪种转换,都会重新分配内存,并复制字节数组。
类型转换
强制类型转换的基本语法如下:
T(表达式)
其中,T表示要转换的类型。表达式包括变量、复杂算子和函数返回值等.
package main import ( "fmt" ) func main() { s := "Hello 中国" // len()求的是byte字节的数量 n := len(s) fmt.Println(n) // for i := 0; i < len(s); i++ { // fmt.Println(s[i]) // fmt.Printf("%c\n", s[i]) // %c:字符 // } // 字符串修改 s2 := "白萝卜" // [白 萝 卜] s3 := []rune(s2) // 把字符串强制转换成了一个rune切片 s3[0] = "红" // 单引号表示字符 fmt.Println(string(s3)) // 把rune切片强制转换成字符串 c1 := "红" c2 := "红" // rune(int32) fmt.Printf("c1:%T c2:%T\n", c1, c2) // c1:string c2:int32 c3 := "H" c4 := "H" c5 := byte("H") fmt.Printf("c3:%T c4:%T\n", c3, c4) // c3:string c4:int32 fmt.Printf("c4:%d\n", c4) // c4:72 fmt.Printf("c5:%T\n", c5) // c5:uint8 // 类型转换 n1 := 10 // int var f float64 f = float64(n1) fmt.Println(f) fmt.Printf("%T\n", f) // float64 }
总结
到此这篇关于GO语言入门学习之基本数据类型字符串的文章就介绍到这了,更多相关GO语言数据类型字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?