1. 程式人生 > >GO語言學習筆記(二)

GO語言學習筆記(二)

  1. 為型別新增方法
    package main
    
    import (
    	"fmt"
    )
    
    type Integer int
    
    func (a Integer) Less(b Integer) bool {
    	return a < b
    }
    
    func main() {
    	var a Integer = 1
    	if a.Less(2) {
    		fmt.Println("Less true.")
    	}
    }
    
    結果輸出:Less true.
  2. 只有在你需要修改物件的時候,才必須用指標
  3. 因為陣列切片的內部是指向陣列的指標,所以可以改變陣列的內容
    package main
    
    import (
    	"fmt"
    )
    
    func modifyslice(array []int) {
    	slice1 := array[1:2]
    	fmt.Println(slice1)
    	slice1[0] = 4
    	fmt.Println(slice1)
    	fmt.Println(array)
    }
    
    func main() {
    	modifyslice([]int{1,2,3})
    	
    }
    
    結果輸出:
    [2]
    [4]
    [1 4 3]
  4. Go語言放棄了例如繼承等面向物件的概念,只保留了組合
  5. 介面的型別查詢
    var file1 Writer = ... 
    if file5, ok := file1.(two.IStream); ok { 
     ... 
    }