Go 語言初級教程之六[基本類型]

基本類型

像C語言同樣,Go提供了一系列的基本類型,常見的布爾,整數和浮點數類型都具有。它有一個Unicode的字符串類型
和數組類型。同時該語言還引入了兩 種新的類型:slice 和map。

數組和切片
Go語言當中的數組不是像C語言那樣動態的。它們的大小是類型的一部分,在編譯時就決定了。數組的索引仍是使用
的熟悉的C語法(如 a), 而且與C同樣,索引是由0開始的。編譯器提供了內建的功能在編譯時求得一個數組的長度
(如 len(a))。若是試圖超過數組界限寫入,會產生一個運行時錯誤。
Go還提供了切片(slices),做爲數組的變形。一個切片(slice)表示一個數組內的連續分段,支持程序員指定底層
存儲的明確部分。構建一個切片 的語法與訪問一個數組元素相似:
 程序員

  1. /* Construct a slice on ary that starts at s and is len elements long */
     
  2. s1 := ary[s:len]
     
  3. /* Omit the length to create a slice to the end of ary */
     
  4. s2 := ary[s:]
     
  5. /* Slices behave just like arrays */
     
  6. s[0] == ary //=> true
     
  7. // Changing the value in a slice changes it in the array
     
  8. ary = 1
     
  9. s[0] = 42
     
  10. ary == 42 //=> true

該切片所引用的數組分段能夠經過將新的切片賦值給同一變量來更改:
 
  1. /* Move the start of the slice forward by one, but do not move the end */
     
  2. s2 = s2[1:]
     
  3. /* Slices can only move forward */
     
  4. s2 = s2[-1:] // this is a compile error


切片的長度能夠更改,只要不超出切片的容量。切片s的容量是數組從s[0]到數組尾端的大小,並由內建的cap()函數
返回。一個切片的長度永遠不能超出它的容量。
這裏有一個展現長度和容量交互的例子:
 數組

閱讀全文>>函數

相關文章
相關標籤/搜索