【Go語言系列】1.1、GO語言簡介:什麼是GO語言

来源:https://www.cnblogs.com/mrbug/archive/2019/12/26/12104700.html
-Advertisement-
Play Games

一、Go的起源 Go語言的所有設計者都說,設計Go語言是因為 C++ 給他們帶來了挫敗感。在 Google I/O 2012 的 Go 設計小組見面會上,Rob Pike 是這樣說的: 我們做了大量的 C++ 開發,厭煩了等待編譯完成,儘管這是玩笑,但在很大程度上來說也是事實。Go 語言起源 200 ...


一、Go的起源

Go語言的所有設計者都說,設計Go語言是因為 C++ 給他們帶來了挫敗感。在 Google I/O 2012 的 Go 設計小組見面會上,Rob Pike 是這樣說的: 我們做了大量的 C++ 開發,厭煩了等待編譯完成,儘管這是玩笑,但在很大程度上來說也是事實。
Go 語言起源 2007 年,並於 2009 年正式對外發佈。它從 2009 年 9 月 21 日開始作為谷歌公司 20% 兼職項目,即相關員工利用 20% 的空餘時間來參與 Go 語言的研發工作。
 
二、Go的創始人

他們都是電腦科學領域的重量級人物。
1、Ken Thompson
貝爾實驗室 Unix 團隊成員,C語言、Unix 和 Plan 9 的創始人之一,在 20 世紀 70 年代,設計並實現了最初的 UNIX 操作系統,僅從這一點說,他對電腦科學的貢獻怎麼強調都不過分。他還與 Rob Pike 合作設計了 UTF-8 編碼方案。
2、Rob Pike
Go語言項目總負責人,貝爾實驗室 Unix 團隊成員,除幫助設計 UTF-8 外,還幫助開發了分散式多用戶操作系統 Plan 9、Inferno 操作系統和 Limbo 編程語言,並與人合著了《The Unix Programming Environment》,對 UNIX 的設計理念做了正統的闡述。
3、Robert Griesemer
就職於 Google,參與開發 Java HotSpot 虛擬機,對語言設計有深入的認識,並負責 Chrome 瀏覽器和 Node.js 使用的 Google V8 JavaScript 引擎的代碼生成部分。

 

三、Go的吉詳物

其實是一種英文名為gopher的小動物,中文叫囊地鼠。由Go 設計者之一 Rob Pike 的妻子Renee French 設計

 

四、Go語言的特點

1、Go語言是編譯型語言。這不同於 Python、Ruby 和 JavaScript 等語言,它們不包含編譯步驟。
2、Go 自帶了編譯器,因此無須單獨安裝編譯器。
3、Go語言具有“部署簡單、併發性好、語言設計良好、執行性能好”等優勢。它起源於 2007 年,併在 2009 年正式對外發佈。
4、Go語言的主要目標是“兼具 Python 等動態語言的開發速度和 C/C++ 等編譯型語言的性能與安全性”。
5、Go語言它不但能讓你訪問底層操作系統,還提供了強大的原生網路編程和併發編程支持。很多知名的開源項目用Go實現,例如:Docker、Go-Ethereum、Thrraform 和 Kubernetes。
6、Go語言是“互聯網時代的C語言”。Go 從C語言繼承了相似的表達式語法、控制流結構、基礎數據類型、調用參數傳值、指針等很多思想,還有C語言一直所看中的編譯後機器碼的運行效率以及和現有操作系統的無縫適配。
7、Go語言沒有類和繼承的概念,它和 Java 或 C# 看起來並不相同。但是它通過介面(interface)的概念來實現多態性。
8、Go語言有一個清晰易懂的輕量級類型系統,在類型之間也沒有層級之說。因此可以說Go語言是一門混合型的語言。

 

五、語言特性

1、自動垃圾回收
2、更豐富的內置類型
3、函數多返回值
4、錯誤處理
5、匿名函數和閉包
6、類型和介面
7、併發編程
8、反射
9、語言交互性


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 要求要安裝Gin軟體包,需要:1、安裝Go(需要1.11+版本)2、設置Go工作區安裝1、下載並安裝 gin: 2、將 gin 引入到代碼中: 3、(可選)導入net/http。例如,如果使用http.StatusOK這類的常量,則需要這樣做: 快速開始1、創建一個名為 example.go 的文件 ...
  • 1、Gin 是什麼? Gin 是一個用 Go (Golang) 編寫的 HTTP web 框架。 它是一個類似於 martini 但擁有更好性能的 API 框架, 由於 httprouter,速度提高了近 40 倍。如果你需要極好的性能,使用 Gin 吧。2、為什麼要用Gin 在 Web 開發中,開 ...
  • Python web應用想要發佈使用iis發佈有兩種方式,這篇文章就為大家介紹一下這兩種方式的具體實現: 1.配置HttpPlatform程式 HttpPlatform 模塊將套接字連接直接傳遞到獨立的 Python 進程。 藉助此傳遞可根據需要運行任何 Web 伺服器,但需要用於運行本地 Web ...
  • 接下來我們來編寫第一個 Go 程式 hello.go(Go 語言源文件的擴展是 .go),代碼如下: 你也許不明白這些代碼的含義,沒關係,後面的文章里會一一說明。 代碼寫好了那我們怎麼讓代碼運行起來呢?在命令行里輸入: 此時會輸出: 前面我們配置的開發環境用的是VSCode,後面我們寫代碼都將在這裡 ...
  • 下麵列舉的是原生使用Go語言進行開發的部分項目。 1、Docker Docker 是一種操作系統層面的虛擬化技術,可以在操作系統和應用程式之間進行隔離,也可以稱之為容器。Docker 可以在一臺物理伺服器上快速運行一個或多個實例。例如,啟動一個 CentOS 操作系統,併在其內部命令行執行指令後結束 ...
  • 寫在前面:聖誕剛過,彌留者節日氣息的大家是否還在繼續學習吶~在匆忙之際也不忘給自己找幾首好聽的歌曲放鬆一下,纏繞著音樂一起來看看關於2019年流行音樂趨勢是如何用Python分析的吧! 昨天下午沒事兒,隨便聽了下音樂,結果搜到了一份數據比較好玩,所以拿了來做個數據分享案例。 這份數據是由國外比較火的 ...
  • Go語言的強項在於它適合用來開髮網絡併發方面的服務,比如消息推送、監控、容器等,所以在高併發的項目上大多數公司會優先選擇 Golang 作為開發語言。 1、Google 這個不用多做介紹,作為開發Go語言的公司,當仁不讓。Google基於Go有很多優秀的項目,比如:https://github.co ...
  • 訂單是我們在日常開發中經常會遇到的一個功能,最近在做一個訂單過期與超時的開發。訂單過期與超時就不用我解釋了吧,其實兩者都是同一個問題來著,就是訂單未支付的處理,我們要做的是對這些未支付的訂單到了一定時間就自動取消,好了,你第一反應那肯定就是做一個定時任務了!是的,就是定時任務,但是哪個才會是最佳方案 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...