這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
概念差異:
1.Go沒有繼承和虛函數,但是提供介面interface。
2.Go有指標,但是沒有指標算術。
3.Go提供記憶體回收。不需要delete
4.Go的字串類似C++的const char*。無法被修改。
5.Go少數類型是引用傳遞。
6.Go的對外可見是以大小寫定義頭字母的來識別的。C++中是Public,private。
7.Go禁止隱式類型轉換。
8.Go不支援函數重載和運算子重定義。
9.Go使用nil表示無效指標。
10.左大括弧{必須在當前行。
0.命名規範以及縮排
1.行末沒必要有分號 ; 。
2.對外變數或函數首字母大寫。
3.命名規範我本人蔘考的http://studygolang.com/articles/2059
1.變數
1.基礎類型
var a int8 = 3
var a int16 = 3
var a int32 = 3
var a int64 = 3
var a uint8 = 3
var a uint16 = 3
var a uint32 = 3
var a uint64 = 3
var a float32 = 3
var a float64 = 3
var a int64 = 3
var a int8 = 3
var a int16 = 3
var a int32 = 3
var a int64 = 3
var a string = "asd"
var a byte = 'v'
2.枚舉
const(
_ = iota
a //1
b //2
)
3.type
type str string
2.控制語句
1.if
if youcode {
}
2.for
for i:=1; i < x; i++{
//不支援前置++
}
3.switch
switch (a){
case 1:
case 2:
default:
}
沒必要break,會直接返回。
3.函數
1.
4.類(自訂結構)與模板
1.
5.繼承
1.
6.引用其他檔案的類,函數,變數
1.
7.介面
1.
8.數組
1.
9.異常
1.
10.並發(協程)
1.
最後附上:
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello World!")
}