诶,开工开工

一、字符、字符串、整型

在接触golang的时候字符串部分基本都是一带而过的,就知道声明以后的字符串就算不初始化也不为nil
而且字符串本身不可以修改,需要转成[]byte数组去操作。

这是最开始了解到的基本操作,但是再往后就会接触到各种奇奇怪怪的类型例如,
byte-uint8,uint8,uint16,uint32,uint64,rune-int32,int8,int16,int32-int,int64

二、字符串和原生字符串

原生字符串:就是不转义的字符串(我是这么理解的)。golang中的原生字符串用 `` 在数字1旁边的两个反引号去表示,区别于双引号字符串。

不转义是怎么理解呢,举个栗子

CODE:
func main() {
    str1 := "asd"
    str2 := `asd`
    str3 := "\n"
    str4 := `\n`
    str5 := "\\n"
    str6 := `\\n`

    fmt.Println("str1:" + str1)
    fmt.Println("str2:" + str2)
    fmt.Println("str1==str2:" + fmt.Sprintln(str1 == str2))
    fmt.Println("str3:" + str3)
    fmt.Println("str4:" + str4)
    fmt.Println("str5:" + str5)
    fmt.Println("str6:" + str6)
    fmt.Println("str1+str3+str4+str3+str2:" + str1 + str3 + str4 + str3 + str2)
}
OUTPUT:

str1:asd
str2:asd
str1==str2:true
str3:
str4:\n
str5:\n
str6:\\n
str1+str3+str4+str3+str2:asd
\n
asd

我在代码里分别打印出来几种情况:
打印出来的第三行,str1==str2: 显示原生字符串和普通字符串的值是相等的
str3和str4可以看出原生和双引号字符串在转义上的区别。

然后最后一行是测试字符串拼接的问题,所以原生字符串和普通的字符串可以直接拼接,转义出来的字符并不受影响。

三、正则表达式