這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
前言
1、針對許可權存取修飾詞的規範
go語言要求public修飾的變數以大寫字母開頭
以private修飾的變數以小寫字母開頭
這樣可以直接免除public和private關鍵字
2、花括弧位置規範
if expression{ if expression
...... { ......
} }
這種是正確的寫法 這種是錯誤的寫法
3、go語言的錯誤處理機制優勢,有error類型
4、用go語言模仿繼承時,若充當父類的結構體a與充當子類的結構體b中有相同名稱的屬性v,在b調用a的方法輸出v的值時,列印輸出的會是父類屬性值
例如下列代碼:
package main
import "fmt"
type Dog struct {
name string
}
type BDog struct {
Dog
name string
}
func (this *Dog) callMyName() {
fmt.Printf("my name is %q\n", this.getName())
}
func (this *Dog) getName() string {
return this.name
}
func main() {
b := new(BDog)
b.name = "this is a BDog name"
b.Dog.name = "this is a Dog name"
b.callMyName()
}
5、go語言介面與類型可以相互轉換,但類型要實現介面的所有方法
type Bird struct {
...
}
func (b *Bird) Fly() {
// 以鳥的方式飛行
}
type IFly interface {
Fly()
}
func main() {
var fly IFly = new(Bird)
fly.Fly()
}
若以後要修改介面中的方法,可以重新定義一個介面來用,這樣可以減少代碼的修改,降低耦合性