诶,开工开工
一、字符、字符串、整型
在接触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可以看出原生和双引号字符串在转义上的区别。
然后最后一行是测试字符串拼接的问题,所以原生字符串和普通的字符串可以直接拼接,转义出来的字符并不受影响。