[Go 語言教程] Go 語言簡介

2020-12-13 萬能的華哥Dean
Go 語言教程

1 Go 語言介紹

Go 即Golang,是Google公司2009年11月正式對外公開的一門程式語言。

Go是靜態強類型語言,是區別於解析型語言的編譯型語言。

解析型語言——原始碼是先翻譯為中間代碼,然後由解析器對代碼進行解釋執行。

編譯型語言——原始碼編譯生成機器語言,然後由機器直接執行機器碼即可執行。

2 Go語言特性

跨平臺的編譯型語言

語法接近C語言

管道(channel),切片(slice),並發(routine)

有垃圾回收的機制

支持面向對象和面向過程的編程模式

3 Go 語言特色

編程模式比較簡單,沒有複雜的設計模式

全部源碼編譯到一個文件,編譯速度很快

最新版本也有動態庫形式,對跨語言調用的支撐更到位

開源框架比較成熟,新崛起的網際網路公司都在用——如滴滴,uber,百度,阿里巴巴,oppo,vivo等

微服務的開發模式下Go語言是新寵

4 Go 擅長領域

服務開發,web的api開發,分布式服務集群的開發

容器docker是go開源的產品,k8s等這些都是基於go語言的

對高並發、高性能的系統和服務支撐,Go語言對比其他語言有更快的開發速度,更高的開發效率

獨有的語言特性和設計模式routine,channel,sync包支撐了海量並行的支持。

所以能看到這些領域都在使用Go語言:微服務開發模式,api開發,rpc服務開發,遊戲服務開發等等

5 Go語言的helloworld例子

helloworld 源碼

源碼簡單說明:其中package是go語言中以包為概念,一般包對應著目錄名字(對應著名字也方便看和提升效率),當然main的包是個特殊的包,不需要目錄名字一致。import是對一個不是本包的外面的包的引入,go語言有個特點對於不使用的包引入了,是會編譯出錯,報錯說沒有使用已經引用的包。

fmt是go語言的一個系統模塊,跟格式化和console的輸出有關。所有的語言編程都會有main方法入口,對於有些沒有的話其實框架本身底層封裝了而已。

運行結果

相關焦點

  • 未來後端語言的趨勢——go語言免費學習網站大推薦!
    一.易百教程易百教程網的go語言教程是我首先要推薦的,為什麼呢?它相比於其它go語言教程網站的內容,除了一樣詳實的教程外,還增加了go編程代碼實例,最適合初次學習go語言的人邊看教程,變根據實例敲代碼。
  • 為什麼選擇go語言
    這裡,我並沒有噴python的意思,它真的是一門好語言,我能夠通過它快速的構建原型,驗證我的想法,而且還一直在使用。只是在項目中,我們的一些疏忽,導致代碼不可控了,到了不得不重構的地步了。Why GO?前面說了我的語言經歷,以及項目到了重構地步的原因,但是為什麼會是go呢?
  • 60分鐘快速了解Go語言
    ,go支持有名稱的變量返回值。}// Decorator在一些語言中很常見,在go語言中,// 接受參數作為其定義的一部分的函數是修飾符的替代品func sentenceFactory(mystring string) func(before, after string)
  • 一次使用 Go 語言編寫腳本的經歷
    通常認為,Python 和 Bash 是熱門的腳本語言,而 C、C++ 和 Java 完全不能被用作腳本編程,有一些語言卻夾在其中。Go 語言試用場景很多,從編寫 Web 伺服器到流程管理,甚至有些人用作系統程式語言。在後文中,我將論證,除了上述這些場景外,Go 語言還可以簡單地用於編寫腳本。
  • Go語言開發環境:Goland安裝
    一、下載安裝開發環境golandgo語言sdk(go的標準庫)安裝sdk的時候,注意安裝的位置,後面要用到,我這裡安裝到了C盤,目錄為: C:\Go:在go裡面,有兩個目錄非常重要,要事先配置:這兩個目錄不需要在一起。
  • GO語言:協程——Goroutine
    Go語言的協程——Goroutine 進程(Process),線程(Thread),協程(Coroutine,也叫輕量級線程) 進程進程是一個程序在一個數據集中的一次動態執行過程,可以簡單理解為「正在執行的程序」,它是CPU資源分配和調度的獨立單位。
  • Go語言正確快速安裝開發工具
    我最近幹啥我最近都在學習Go語言相關的東西以及搗鼓論文。不是沒時間更新,其實就是自己懶。 後續應該會回復正常的節奏了。今天都幹了些啥今天下午都在安裝Go語言的東西,因為自己打算使用VsCode作為Go的開發主力。
  • web開發我更喜歡使用GO語言
    go語言可能是Google開發的程式語言,迅速受到開發的關注並願意使用它,在2016年被TIOBE 選為「TIOBE 年最佳程式語言」,可想而知go能被開發者認可一定有它獨特的優勢,而我更喜歡使用GO語言web開發。
  • go語言底層數據結構之map解析
    go語言中map類型首先我們來看一段代碼:大家想下程序會輸出什麼?如果go語言是傳遞引用的話,那輸出應該是false,但是實際輸出是true,fn內部申請的map[int][int]不影響外部m,那此時我們就要問:如果map不是引用類型,那map是什麼?
  • go語言好不好?可以用來做什麼?如何學好golang?
    該語言是由編寫、閱讀、調試和維護大型軟體系統的人所設計,這也是為他們自己所設計的。」這就是說,設計Go時,有一系列特殊的問題要解決,最初擁有C、Pascal、Modula和Oberon等高級程式語言的最佳特性的堅實基礎。它還牢記了Python、C++、Java等語言的有用特性,這些就是Go要解決的問題。「很多Go的新人都會要求從所知的語言中獲取功能。
  • 快速轉型golang(go語言)web開發 01系列概覽
    為什麼要出這個快速轉型go語言的系列?因為現在go語言在國內實在是太火了……火,就意味著有錢途^_^(是的你沒看錯,就是你想的那個錢途)Go在國內到底有多火?現在市面上的大廠:華為、阿里巴巴、騰訊、百度、拼多多、京東、字節跳動、小米、美團、滴滴、360……已經沒有不用go語言的了……但是……go火爆速度遠大於市場上go工程師的供給速度,面對市面上大量go語言的崗位需求和明朗的就業前景,必定會有很多朋友有快速轉型的需求……
  • Go語言出後,Java還是最佳選擇嗎?
    JAVA已經很成熟了,go是新興的語言,就好比當年的Python,好像過了這些年Python依然沒有取代JAVA。所以結論是java不單單是一門語言,而是背後的成熟的開發體系。至少目前的go還沒有這樣的成熟的體系。第二:適用面不一樣。java其實目前還是主要應用於web開發和Android這塊。就好比Python適用於科學計算。
  • 為什麼很多公司轉型 Go 語言開發?Go 語言能做什麼
    1、為什麼選擇Go語言選擇Go語言的原因可能會有很多,關於Go語言的特性、優勢等,我們在之前的文檔中也已經介紹了很多了。2、Go語言能做什麼Go 語言從發布 1.0 版本以來備受眾多開發者關注並得到廣泛使用,Go 語言的簡單、高效、並發特性吸引了眾多傳統語言開發者的加入,而且人數越來越多。
  • 經驗之談:學習Go語言的利與弊
    我嘗試用go-routine來解決此問題,其中很具挑戰性的一點是程序發出的HTTP請求數量未知,因此需要學習如何有效處理這些請求。第一印象很快,我發現語法異常熟悉,儘管我之前從未閱讀過相關文檔。在我看來,這些概念很直觀(其他人可能不贊成)。Defer的使用直接明了。
  • 想學新的程式語言?考慮下 Go 吧!
    Go語言是Google面對自己遇到的大數據處理(這也是Google目前最流行的功能之一)方面的超長編譯時間等問題交出的答卷。他們需要一種語言,該語言的重點在於可擴展性、可讀性和並發性。Go語言從誕生起就避免了其他語言必須面對的這些煩惱。Go語言的發明者們從其他語言中吸取了最需要的概念,然後進行改進,再合併到一起,形成了Go語言。
  • 「GCTT 出品」Go 語言中的 Monkey 補丁
    由 GitHub 託管 查看源文件上述代碼應該用 go build -gcflags=-l 來編譯,以避免內聯。現在讓我們看看在 Go 語言中 函數的值是怎麼實現的。如果你是有 C 語言的開發背景 ,你可以會覺得 f 就是一個簡單的函數指針,並且這段代碼會輸出 0x2000 (我們在上面看到的 main.a 的地址)。當我在我的機器上運行時,我得到的是 0x102c38, 這個地址甚至與我們的代碼都不挨著!
  • Go 語言之 defer 的前世今生 - CSDN
    作者 | 歐長坤來源 | 碼農桃花源延遲語句 defer 在最早期的 Go 語言設計中並不存在,後來才單獨增加了這一特性,由 Robert Griesemer 完成語言規範的編寫 [Griesemer, 2009], 並由 Ken Thompson 完成最早期的實現 [Thompson, 2009],兩人合作完成這一語言特性。
  • 一篇文章帶你入門Go語言基礎之並發
    引言Go語言,專門為並發而生的語言,每啟動一個微線程創建一個代價大概2KB起步假設一個內存條大小4G,一個微線程2kb,1G=1024M=1048576kb,1048576/2=524288,五十多萬個但是你知道像Java,Python等語言,一個線程代價多大嗎???
  • Pokemon Go口袋妖怪GO怎麼孵蛋,孵蛋教程攻略!
    玩家在Pokemon go中通過孵蛋獲得精靈。這次小編就為大家帶來Pokemon go怎麼孵蛋,以及口袋妖怪GO孵蛋的各種教程攻略。一個獲取精靈的方式是孵蛋(Egg)。Pokemon go口袋妖怪GO怎麼獲得蛋你的包裡最多有9個蛋,不足9個的時候去補給站有很大概率會拿到。在精靈界面向右滑就可以看到蛋界面,點擊選擇孵蛋器就可以開始孵化了。
  • 最理想的語言之一:GO為何如此與眾不同?
    該語言是由編寫、閱讀、調試和維護大型軟體系統的人所設計,這也是為他們自己所設計的。」這就是說,設計Go時,有一系列特殊的問題要解決,最初擁有C、Pascal、Modula和Oberon等高級程式語言的最佳特性的堅實基礎。它還牢記了Python、C++、Java等語言的有用特性,這些就是Go要解決的問題。