Go中的字符串

一个字符串是一个不可改变的字节序列,字符串可以包含任意的数据,但是通常是用来包含可读的文本,
字符串是 UTF-8 字符的一个序列(当字符为 ASCII 码表上的字符时则占用 1 个字节,其它字符根据需要占用 2-4 个字节)。
字符串是一种值类型,且值不可变,即创建某个文本后将无法再次修改这个文本的内容,更深入地讲,字符串是字节的定长数组。

package main

import "fmt"


/*
可以使用双引号""来定义字符串,字符串中可以使用转义字符来实现换行、缩进等效果,常用的转义字符包括:
\n:换行符
\r:回车符
\t:tab 键
\u 或 \U:Unicode 字符
\\:反斜杠自身
*/

func Str(str string)  {
	//ASCII 字符遍历
	//字符串所占的字节长度可以通过函数 len() 来获取
	for i:=0;i<len(str) ;i++  {
		fmt.Printf("ascii: %c  %d  ", str[i],str[i])
	}
	//按Unicode(UTF-8)字符遍历字符串(正常显示中文)
	for _,s:=range str {
		fmt.Printf("Unicode:%c %d  ",s,s)
	}
}

func main()  {
	//字符串的内容(纯字节)可以通过标准索引法来获取,在方括号[]内写入索引,索引从 0 开始计数:
	var  str="RushA的"
	fmt.Println(str)     //RushA的
	fmt.Println(str[0])	 //字符串 str 的第 1 个字节:82


	//获取字符串中某个字节的地址属于非法行为,例如 &str[i]
	//fmt.Println(&str[1]) //cannot take the address of str[1]

	Str(str)
	/*
	ascii: R  82  ascii: u  117  ascii: s  115  ascii: h  104  ascii: A  65  ascii: ç  231  ascii:   154  ascii:   132
	Unicode:R 82  Unicode:u 117  Unicode:s 115  Unicode:h 104  Unicode:A 65  Unicode:的 30340
	*/
	Str1()	  //wdnmdcxk
}

//字符串拼接符“+”

//两个字符串 s1 和 s2 可以通过 s := s1 + s2 拼接在一起。将 s2 追加到 s1 尾部并生成一个新的字符串 s。
func Str1()  {
		s:="wd"+"nmd"
		s+="cxk"
		fmt.Println(s)
}


//定义多行字符串

//使用双引号书写字符串的方式是字符串常见表达方式之一,被称为字符串字面量(string literal),
// 这种双引号字面量不能跨行,如果想要在源码中嵌入一个多行字符串时,就必须使用`反引号
//` `中所有代码均不会被编译器识别,而只是作为字符串的一部分
const str  =`
1
2
3
`
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值