1. 程式人生 > >golang語言漸入佳境[21]-string型別詳解

golang語言漸入佳境[21]-string型別詳解

string的本質

string是一個引用型別,string包含了兩個部分。一個部分是指標,指向了底層的一個位元組陣列。另一個部分是位元組陣列的長度。
當複製字串時,也只是複製了指標與長度。底層的那個位元組陣列是不能夠改變的。
字串使用UTF-8編碼。

列印字串

1
2
3
4
5
func main(){

str := "跟著建勳老師學程式設計"
fmt.Println([]byte(str)) // 轉換為位元組陣列
}

轉換為位元組陣列

1
2
3
4
func main(){
str := "跟著建勳老師學程式設計"
fmt.Println([]byte(str))

}

字串中特殊字元

1
2
3
4
5
6
7
8
9
10
\a   U+0007 alert or bell
\b   U+0008 backspace
\f   U+000C form feed
\n   U+000A line feed or newline
\r   U+000D carriage return
\t   U+0009 horizontal tab
\v   U+000b vertical tab
\\   U+005c backslash
\'   U+0027 single quote  (valid escape only within rune literals)

\"   U+0022 double quote  (valid escape only within string literals)

字串長度len

1
2
3
4
func main(){
str := "跟著建勳老師學程式設計"
fmt.Println(len(str)) //27 總的位元組個數  
}

字串序號

1
2
3
4
func main(){
str := "跟著建勳老師學程式設計"
fmt.Println(str[20])   //仍然是位元組
}

字串slice

截斷無壓力

1
2
3
4
func main(){
str := "跟著建勳老師學程式設計"
fmt.Println(str[3:])  //打印出:著建勳老師學程式設計
}

字串+連線

1
2
3
4
5
func main(){
str1 := "jonson love "
str2 :="olaya"
fmt.Println(str1+str2)  //jonson love olaya
}

image.png