您好,登錄后才能下訂單哦!
本文小編為大家詳細(xì)介紹“golang和c語言相似嗎”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“golang和c語言相似嗎”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
golang和c語言相似。Go語言被描述為“C 類似語言”,或者是“21 世紀(jì)的C語言”,其語法與C相近;Go從C語言繼承了相似的表達(dá)式語法、控制流結(jié)構(gòu)、基礎(chǔ)數(shù)據(jù)類型、調(diào)用參數(shù)傳值、指針等很多思想,還有C語言一直所看中的編譯后機(jī)器碼的運(yùn)行效率以及和現(xiàn)有操作系統(tǒng)的無縫適配。
golang和c語言相似
Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發(fā)的一種靜態(tài)強(qiáng)類型、編譯型語言。
Go語言被描述為“C 類似語言”,或者是“21 世紀(jì)的C語言”。Go 從C語言繼承了相似的表達(dá)式語法、控制流結(jié)構(gòu)、基礎(chǔ)數(shù)據(jù)類型、調(diào)用參數(shù)傳值、指針等很多思想,還有C語言一直所看中的編譯后機(jī)器碼的運(yùn)行效率以及和現(xiàn)有操作系統(tǒng)的無縫適配。
Go 語言語法與 C 相近,且功能上有:內(nèi)存安全,GC(垃圾回收),結(jié)構(gòu)形態(tài)及 CSP-style 并發(fā)計(jì)算。
Go支持垃圾回收功能。Go的并行模型是以東尼·霍爾的通信順序進(jìn)程(CSP)為基礎(chǔ),采取類似模型的其他語言包括Occam和Limbo,但它也具有Pi運(yùn)算的特征,比如通道傳輸。在1.8版本中開放插件(Plugin)的支持,這意味著現(xiàn)在能從Go中動態(tài)加載部分函數(shù)。
Go語言是云計(jì)算時(shí)代的C語言。Go語言的誕生是為了讓程序員有更高的生產(chǎn)效率,Go語言專門針對多處理器系統(tǒng)應(yīng)用程序的編程進(jìn)行了優(yōu)化,使用Go編譯的程序可以媲美C或C++代碼的速度,而且更加安全、支持并行進(jìn)程。
開發(fā)人員在為項(xiàng)目選擇語言時(shí),不得不在快速開發(fā)和性能之間做出選擇。C和C++這類語言提供了很快的執(zhí)行速度,而 Ruby 和 Python 這類語言則擅長快速開發(fā)。Go語言在這兩者間架起了橋梁,不僅提供了高性能的語言,同時(shí)也讓開發(fā)更快速。
golang和c語言的對比
1、代碼管理對比
C語言中通過文件來管理代碼
想使用某一個函數(shù)時(shí),只需要include導(dǎo)入對應(yīng)的.h文件即可
Go語言中通過包來管理代碼
Go語言沒有.h文件的概念, 在Go中想使用某一個函數(shù)時(shí), 只需要import導(dǎo)入對應(yīng)的包即可
C語言中函數(shù)、變量公私有管理
通過extern和static實(shí)現(xiàn)是否公開函數(shù)和變量
Go語言中函數(shù)、變量公私有管理
通過函數(shù)名稱首字母大小寫實(shí)現(xiàn)是否公開函數(shù)
通過變量名稱首字母大小寫實(shí)現(xiàn)是否公開變量
2、關(guān)鍵字對比
C語言中一共有32個關(guān)鍵字
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個關(guān)鍵字
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、數(shù)據(jù)類型對比
C語言數(shù)據(jù)類型
Go語言數(shù)據(jù)類型
C語言各數(shù)據(jù)類型占用內(nèi)存空間
類型 | 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語言各數(shù)據(jù)類型占用內(nèi)存空間
類型 | 32位編譯器 | 64位編譯器 | 本質(zhì) |
---|---|---|---|
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 | 根據(jù)機(jī)器位數(shù)決定長度 |
uintptr | 4 | 8 | 根據(jù)機(jī)器位數(shù)決定長度 uint32/uint64 |
float32 | 4 | 4 | float |
float64 | 8 | 8 | double |
true | 1 | 1 | char類型的整型 |
false | 1 | 1 | char類型的整型 |
4、常量變量對比
C語言定義常量和變量格式
數(shù)據(jù)類型 變量名稱 = 值;
const 數(shù)據(jù)類型 常量名稱 = 值;
Go語言定義常量和變量格式
除了以下標(biāo)準(zhǔn)格式外,Go語言還提供了好幾種簡單的語法糖
var 變量名稱 數(shù)據(jù)類型 = 值;
const 變量名稱 數(shù)據(jù)類型 = 值;
讀到這里,這篇“golang和c語言相似嗎”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點(diǎn)還需要大家自己動手實(shí)踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。