溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang和c語言之間的區(qū)別是什么?

發(fā)布時間:2020-04-20 15:50:11 來源:億速云 閱讀:1077 作者:小新 欄目:編程語言

golang和c語言之間的區(qū)別是什么?相信有很多人都不太了解,今天小編為了讓大家更加了解golang和c語言之間的區(qū)別,所以給大家總結了以下內容,一起往下看吧。

golang和c語言之間的區(qū)別是什么?

golang和c語言的區(qū)別

1、表面差異——行尾分號

從C、C++、C#、Java過來的程序員,會很奇怪所看到的Go代碼沒有行尾分號(“;”)作為一行的結束符。在說明這個問題之前我們聲明一個重要事實:正式的Go語法是使用英文分號(“;”)做為結尾標識符的。

我們之所以不用在行尾加分號,是Go在設計中基于以下兩點考慮:

  • 可用幾個簡單規(guī)則確定語句行尾,因此行尾分號是可省略的;

  • 省略行尾分號可以更好的規(guī)范代碼。

Golang在編譯時,當代碼行(非注釋行)的最后一個詞段為下列五種情況之一時,則自動在行尾插入分號:

  1. 行尾為三種右括號之一:)、]、};

  2. 行尾為自增或者自減運算符(++、–);

  3. 行尾為類型的具體值:布爾值、整數、浮點數、復數、Unicode碼點或者字符串字面量;

  4. 行尾為一個標識符:包括類型名、變量名、常量名、跳轉標簽、包名和包的引入名(不包括關鍵字);

  5. 行尾為4個跳轉關鍵字:包括break、continue、fallthrough和return(不包括其他關鍵字)。

2、常量變量對比

C語言定義常量和變量格式

數據類型 變量名稱 = 值;
const 數據類型 常量名稱 = 值;

Go語言定義常量和變量格式

除了以下標準格式外,Go語言還提供了好幾種簡單的語法糖

var 變量名稱 數據類型 = 值;
const 變量名稱 數據類型 = 值;

3、代碼管理對比

C語言中通過文件來管理代碼

  ● 想使用某一個函數時,只需要include導入對應的.h文件即可

Go語言中通過包來管理代碼

  ● Go語言沒有.h文件的概念, 在Go中想使用某一個函數時, 只需要import導入對應的包即可

C語言中函數、變量公私有管理

  ● 通過extern和static實現是否公開函數和變量

Go語言中函數、變量公私有管理

  ● 通過函數名稱首字母大小寫實現是否公開函數

  ● 通過變量名稱首字母大小寫實現是否公開變量

4、核心差異

總結了以下八點:

  1. 并發(fā)編程

  2. 面向接口編程

  3. 函數多返回值

  4. 延后執(zhí)行

  5. 異常處理

  6. 強大且高性能的網絡編程

  7. 內存管理及回收

  8. 代碼跨平臺及交叉編譯

真是因為上述八點核心差異,讓Go被譽為互聯網時代的C語言。

5、具體差異

至于C與Go的具體差異,在hyperpolyglot上有詳細的對比表格:http://hyperpolyglot.org/c

hyperpolyglot.org中對一些相似的開發(fā)語言和工具做詳細對比,沒事的時候可以看看。

以上就是golang和c語言之間的區(qū)別是什么的簡略介紹,當然詳細使用上面的不同還得要大家自己使用過才領會。如果想了解更多,歡迎關注億速云行業(yè)資訊頻道哦!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI