返回
北京兄弟连IT
置顶
该校与厚学网暂未合作,平台不保证课程的真实有效性,如有侵权等争议,请及时与厚学网联系处理
招生热线:400-656-1390

学校地址:北京市昌平区回龙观文华西路育荣教育园区兄弟连IT教育

兄弟连教育Go语言教程(5)字符串

78 2018-08-01 10:40:00

学习笔记

  兄弟连Go语言培训课程体系设计架构包括了区块链的基础语言Go语言、区块链后端技术体系、区块链公链、区块链分布式应用开发等内容讲解,以及到最后的面试指导和项目实战。课程由清华微软谷歌团队精心打造,历时半年时间共同研发而出。

  兄弟连教育Go语言教程(5)字符串

  字符串是不可变值类型,内部⽤用指针指向UTF-8字节数组。

  •默认值是空字符串""。

  •⽤用索引号访问某字节,如s[i]。

  •不能⽤用序号获取字节元素指针,&s[i]⾮非法。

  •不可变类型,⽆无法修改字节数组。

  •字节数组尾部不包含NULL。

  runtime.h

  structString

  {

  byte*str;

  intgolen;

  };

  使⽤用索引号访问字符(byte)。

  s:="abc"

  println(s[0]=='\x61',s[1]=='b',s[2]==0x63)

  输出:

  truetruetrue

  使⽤用"`"定义不做转义处理的原始字符串,⽀支持跨⾏行。

  s:=`a

  b\r\n\x00

  c`

  println(s)

  输出:

  a

  b\r\n\x00

  c

  连接跨⾏行字符串时,"+"必须在上⼀一⾏行末尾,否则导致编译错误。

  s:="Hello,"+

  "World!"

  s2:="Hello,"

  +"World!"//Error:invalidoperation:+untypedstring

  ⽀支持⽤用两个索引号返回⼦子串。⼦子串依然指向原字节数组,仅修改了指针和⻓长度属性。

  s:="Hello,World!"

  s1:=s[:5]//Hello

  s2:=s[7:]//World!

  s3:=s[1:5]//ello

  单引号字符常量表⽰示UnicodeCodePoint,⽀支持\uFFFF、\U7FFFFFFF、\xFF格式。

  对应rune类型,UCS-4。

  funcmain(){

  fmt.Printf("%T\n",'a')

  varc1,c2rune='\u6211','们'

  println(c1=='我',string(c2)=="\xe4\xbb\xac")

  }

  输出:

  int32//rune是int32的别名

  truetrue

  要修改字符串,可先将其转换成[]rune或[]byte,完成后再转换为string。⽆无论哪种转

  换,都会重新分配内存,并复制字节数组。

  funcmain(){

  s:="abcd"

  bs:=[]byte(s)

  bs[1]='B'

  println(string(bs))

  u:="电脑"

  us:=[]rune(u)

  us[1]='话'

  println(string(us))

  }

  输出:

  aBcd

  

  ⽤用for循环遍历字符串时,也有byte和rune两种⽅方式。

  funcmain(){

  s:="abc汉字"

  fori:=0;i

  fmt.Printf("%c,",s[i])

  }

  fmt.Println()

  for_,r:=ranges{//rune

  fmt.Printf("%c,",r)

  }

  }

  输出:

  a,b,c,æ,±,,å,­,,

  a,b,c,汉,字,

  

兄弟连教育Go语言教程(5)字符串

文中图片素材来源网络,如有侵权请联系删除
来源:北京兄弟连IT
热门课程 全部课程

热门动态

申请免费试听

只要一个电话

我们为您免费回电

立即申请