8 Go 字符类型和字符串类型

Go字符类型

1 字符类型可用byte和rune存储,英文等一字节字符存到byte中,中文等三字节字符存到rune中

2 字符类型是可以像整型一样计算的

3 字符类型可以表达转义符

 1 package main
 2 
 3 import (
 4     "fmt"
 5 )
 6 
 7 func main() {
 8     // Go语言字符串类型
 9     var b1 byte = 'A'
10     fmt.Println("b1=", b1) // b1= 65
11     fmt.Printf("b1是字符 %c", b1) // b1是字符 A
12     fmt.Println("")
13 
14     // var r1 byte = '国' // .\string.go:13:16: cannot use '国' (untyped rune constant 22269) as byte value in variable declaration (overflows)
15     var r1 rune = ''
16     fmt.Println("r1=", r1) // r1= 22269
17     fmt.Printf("r1是字符 %c", r1) // r1是字符 国
18     fmt.Println("")
19 
20     // var i1 int16 = 8888
21     // var i2 int8 = int8(i1)
22     // fmt.Println(i2)
23     // fmt.Println("")
24 
25     // 字符类型是可以计算的
26     fmt.Println("字符类型是可以计算的")
27     var r2 rune = ''
28     fmt.Println(r2) // 19971
29     fmt.Println("r2+7=", r2 + 7) // r2+7= 19978
30     fmt.Println("")
31 
32     // 字符类型可以使用转义符
33     fmt.Println("字符类型可以使用转义符,值也是对应ASCII值")
34     var b2 byte = '\n'
35     var b3 byte = '\r'
36     var b4 byte = '\''
37     var b5 byte = '\t'
38     fmt.Println("b2=", b2) // b2= 10
39     fmt.Println("b3=", b3) // b3= 13
40     fmt.Println("b4=", b4) // b4= 39
41     fmt.Println("b5=", b5) // b5= 9
42     fmt.Println("")
43     
44 }

 

Go字符串类型

1 Go语言的字符串是一串固定长度的字符连接起来字符序列;

  Go的字符串是由单个字节连接起来的;

  Go语言字符串的字节使用URF-8的unicode文本

    var s2 = "字符串"
    fmt.Println("s2=", s2) // s2= 字符串
    fmt.Println(s2[0]) // 229
    fmt.Println(s2[1]) // 173
    fmt.Println(s2[2]) // 151
    fmt.Println(s2[3]) // 231
    fmt.Println(s2[4]) // 172
    fmt.Println(s2[5]) // 166
    fmt.Println(s2[6]) // 228
    fmt.Println(s2[7]) // 184
    fmt.Println(s2[8]) // 178
    // fmt.Println(s2[9]) // panic: runtime error: index out of range [9] with length 9

2 Go语言字符串一旦被赋值,就不可再更改

var s6 = "ABC"
s6[0] = 'D' //   cannot assign to s6[0] (value of type byte)

3 Go字符串有两种表达方式,双引号和反引号

  1) 双引号,能识别转义符

  2)反引号,以字符串的源生形式输出,包括换行和特殊字符。可以实现防止攻击、输出源码等功能

    var s3 string = "我能用\n换行符"
    fmt.Println(s3)
    var s4 string = `
    var s string = "我是反引号内的内容,能直接输出源码"
    fmt.Println(s)
    `
    fmt.Println(s4)

 

 4 Go字符串拼接使用“+”号

    var str = "我是前半句 " + " 我是后半句"
    fmt.Println(str) // 我是前半句  我是后半句
5 当拼接字符串很长时,可如下处理避免单行过长,将 + 号放在行末
   PS: 如果行末不以 + 号结尾,则编译器会自动在行末加上结束分号;,导致编译报错
    var str1 = "奥斯卡劳动法拉风" + "asdjfailsdjf" + "阿斯加德反馈拉丝机砥砺奋进" +
    "暗示的交罚款来的简历开局了" + "SDK零封就阿斯拉达弗利萨记反了" + "askldfuasj" +
    "sdkfuasdfjs"
    fmt.Println(str1)

 

 

 

posted @ 2022-05-05 23:37  风铃如沧海  阅读(168)  评论(0编辑  收藏  举报