golang和c語言相似。Go語言被描述為「C 類似語言」,或者是「21 世紀的C語言」,其語法與C相近;Go從C語言繼承了相似的表示式語法、控制流結構、基礎資料型別、呼叫引數傳值、指標等很多思想,還有C語言一直所看中的編譯後機器碼的執行效率以及和現有作業系統的無縫適配。
本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。
golang和c語言相似
Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發的一種靜態強型別、編譯型語言。
Go語言被描述為「C 類似語言」,或者是「21 世紀的C語言」。Go 從C語言繼承了相似的表示式語法、控制流結構、基礎資料型別、呼叫引數傳值、指標等很多思想,還有C語言一直所看中的編譯後機器碼的執行效率以及和現有作業系統的無縫適配。
Go 語言語法與 C 相近,且功能上有:記憶體安全,GC(垃圾回收),結構形態及 CSP-style 平行計算。
Go支援垃圾回收功能。Go的並行模型是以東尼·霍爾的交談循序程式(CSP)為基礎,採取類似模型的其他語言套件括Occam和Limbo,但它也具有Pi運算的特徵,比如通道傳輸。在1.8版本中開放外掛(Plugin)的支援,這意味著現在能從Go中動態載入部分函數。
Go語言是雲端計算時代的C語言。Go語言的誕生是為了讓程式設計師有更高的生產效率,Go語言專門針對多處理器系統應用程式的程式設計進行了優化,使用Go編譯的程式可以媲美C或C++程式碼的速度,而且更加安全、支援並行程序。
開發人員在為專案選擇語言時,不得不在快速開發和效能之間做出選擇。C和C++這類語言提供了很快的執行速度,而 Ruby 和 Python 這類語言則擅長快速開發。Go語言在這兩者間架起了橋樑,不僅提供了高效能的語言,同時也讓開發更快速。
golang和c語言的對比
1、程式碼管理對比
C語言中通過檔案來管理程式碼
想使用某一個函數時,只需要include匯入對應的.h檔案即可
Go語言中通過包來管理程式碼
Go語言沒有.h檔案的概念, 在Go中想使用某一個函數時, 只需要import匯入對應的包即可
C語言中函數、變數公私有管理
通過extern和static實現是否公開函數和變數
Go語言中函數、變數公私有管理
通過函數名稱首字母大小寫實現是否公開函數
通過變數名稱首字母大小寫實現是否公開變數
2、關鍵字對比
C語言中一共有32個關鍵字
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|
if | else | switch | case | default | break | return | goto |
do | while | for | continue | typedef | struct | enum | union |
char | short | int | long | float | double | void | sizeof |
signed | unsigned | const | auto | register | static | extern | volatile |
Go語言中一共有25個關鍵字
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|
if | else | switch | case | default | break | return | goto |
fallthrough | for | continue | type | struct | var | const | map |
func | interface | range | import | package | defer | go | select |
chan |
3、資料型別對比
C語言資料型別
Go語言資料型別
C語言各資料型別佔用記憶體空間
型別 | 32位元編譯器 | 64位元編譯器 |
---|---|---|
char | 1 | 1 |
int | 4 | 4 |
float | 4 | 4 |
double | 8 | 8 |
short | 2 | 2 |
long | 4 | 8 |
long long | 8 | 8 |
void* | 4 | 8 |
Go語言各資料型別佔用記憶體空間
型別 | 32位元編譯器 | 64位元編譯器 | 本質 |
---|---|---|---|
int8/uint8 | 1 | 1 | signed char/unsigned char |
int16/uint16 | 2 | 2 | signed short/unsigned short |
int32/uint32 | 4 | 4 | signed int/unsigned int |
int64/uint64 | 8 | 8 | signed long long int/unsigned long long int |
byte | 1 | 1 | uint8/unsigned char |
rune | 4 | 4 | int32/signed int |
int | 4 | 8 | 根據機器位數決定長度 |
uintptr | 4 | 8 | 根據機器位數決定長度 uint32/uint64 |
float32 | 4 | 4 | float |
float64 | 8 | 8 | double |
true | 1 | 1 | char型別的整型 |
false | 1 | 1 | char型別的整型 |
4、常數變數對比
C語言定義常數和變數格式
資料型別 變數名稱 = 值;
const 資料型別 常數名稱 = 值;
登入後複製
Go語言定義常數和變數格式
除了以下標準格式外,Go語言還提供了好幾種簡單的語法糖
var 變數名稱 資料型別 = 值;
const 變數名稱 資料型別 = 值;
登入後複製
【相關推薦:Go視訊教學、】
以上就是golang和什麼相似的詳細內容,更多請關注TW511.COM其它相關文章!