GO语言学习——基本数据类型字符串

字符串

Go 中的字符串显示为原始数据类型。 Go 中字符串的内部实现使用 UTF-8 编码。字符串的值为双引号(”)中的内容,非ASCII字符可以直接加到Go语言的源码中

GO语言中的字符串用双引号括起来

GO语言中的单引号是字符

// 字符串
s := "Hello 中国"
// 单独的字母、汉字、符合表示一个字符
c1 := 'h'
c2 := '1'
c3 := '中'
// 字节:1字节=8Bit(8个二进制位)
// 1个字符'A'=1个字节
// 1个utf8编码的汉字'中'= 一般占3个字节

字符串转义符

转义字符含义

(返回到行首)

n 换行(直接跳到同列位置的下一行)

ttab

的单引号

“双引号

反斜杠

对字符串的常用操作

              方法                 	  介绍   
           len(str)              	  求长度  
         +或fmt.Sprintf           	 拼接字符串 

         strings.Split           	  分割   
       strings.contains          	判断是否包含 

.,.前缀/后缀判断

.Index(),.()子串出现的位置

.Join(a[], sep )加入操作

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, "\")

图片[1]-GO语言学习——基本数据类型字符串-唐朝资源网

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, "+")) }

字节和符文类型

字符用单引号 (‘) 括起来

Go 语言中有两种类型的字符:

uint8 类型,或字节类型,表示 ASCII 码中的一个字符。符文类型,表示一个 UTF-8 字符。 rune 类型实际上是一个 int32

字符串的底层是字节数组,可以与[]byte类型相互转换。字符串不能被修改 字符串是由字节组成的,所以字符串的长度就是字节的长度。 rune 类型用于表示 utf8 字符,一个 rune 字符由一个或多个字节组成。

图片[2]-GO语言学习——基本数据类型字符串-唐朝资源网

修改字符串

要修改一个字符串,需要先转换成[]rune或者[]byte,然后再转换成。无论转换如何,都会重新分配内存,并复制字节数组。

类型转换

强制的基本语法如下:

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("%cn", s[i]) // %c:字符
	// }

图片[3]-GO语言学习——基本数据类型字符串-唐朝资源网

// 字符串修改 s2 := "白萝卜" // [白 萝 卜] s3 := []rune(s2) // 把字符串强制转换成了一个rune切片 s3[0] = '红' // 单引号表示字符 fmt.Println(string(s3)) // 把rune切片强制转换成字符串 c1 := "红" c2 := '红' // rune(int32) fmt.Printf("c1:%T c2:%Tn", c1, c2) // c1:string c2:int32 c3 := "H" c4 := 'H' c5 := byte('H') fmt.Printf("c3:%T c4:%Tn", c3, c4) // c3:string c4:int32 fmt.Printf("c4:%dn", c4) // c4:72 fmt.Printf("c5:%Tn", c5) // c5:uint8 // 类型转换 n1 := 10 // int var f float64 f = float64(n1) fmt.Println(f) fmt.Printf("%Tn", f) // float64 }

© 版权声明
THE END
喜欢就支持一下吧
点赞8赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容