[go語言]數組和字串
來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1 數群組類型
1)建立數組array
建立數組時候,必須定義數組長度。
數組不能改變長度。
數組元素預設初始化為0.
var 陣列變數 [N]類型
var arr [10]int
arr := [10]int{1,2,3} //建立數組並初始化部分元素
arr := [...]int{1,2,3} //根據初始化元素個數建立數組
2)建立二位元組
聲明了一個二維數組,該數組以兩個數組作為元素,其中每個數組中又有4個int類型的元素
doubleArray := [2][4]int{[4]int{1, 2, 3, 4}, [4]int{5, 6, 7, 8}}
easyArray := [2][4]int{{1, 2, 3, 4}, {5, 6, 7, 8}} //內外類型一樣,二維數組可省略內部類型
3)數組作為參數
數組作為參數,傳輸的是拷貝而不是指標。
數組做參數時, 需要被檢查長度。
比如 fun test_array(args [4]int){
argsp[1] = 10
}
4)數組指標
可以⽤ new() 建立數組,返回數組指標
var a = new([10]int)
2 字串類型
字串是用一對雙引號""或反引號(``)括起來定義,它的類型是`string`。
例如
var str string
str="hello world"
str=`hello world` //``預設不進行轉義,可使用跨行格式。
1)go中字串面值是不可變的。
不能直接修改字串中的字元。可以轉為[]byte修改,然後轉換回string。字串預設值為"".
2)編碼方式
string裡面的字元採用utf-8編碼,每個字元長度是不確定的,可能為1-4個位元組儲存。(英文是一個位元組)
3)字串元素
可以使用str[3]或訪問某個位元組。但是不能訪問元素指標,非法的&str[3]。
4)字串切片
字串可以進行切片操作
比如str[3:8],可以截取3,8之間的字串值。返回一個子串,而不是slice。
5)字串轉換。
字串和位元組數組可以相互進行顯式轉換。
var str string = "abc";
charray := []byte(string );
charray[1] = d;
str:= string(charray);
6)字串拼接
1 普通拼接
+ 拼接
2 使用buffer拼接
sb:=bytes.Buffer{}
sb.write("hello");
sb.write("world");
str:= sb.String();
7)字串操作方法
strings.Join([]string{"a","b","c"},",") 組合字元串,使用,
8)字串轉為數字
strconv.FormatFloat(10.100,'f',-1,32) 將數字轉為字串
strconv.ParseInt(s string, base int, bitSize int) 字串轉為數字