溫馨提示×

溫馨提示×

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

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

Golang的示例分析

發(fā)布時間:2021-12-15 09:30:58 來源:億速云 閱讀:171 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)Golang的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

Go語言簡介

Go是從2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持開發(fā),后來還加入了Ian Lance Taylor, Russ Cox等人,并最終于2009年11月開源,在2012年早些時候發(fā)布了Go 1穩(wěn)定版本。

Go語言(簡稱Golang)是云計算時代的C語言,Go的誕生能夠使得程序員有更高的生產(chǎn)效率,Go語言專門針對多處理器系統(tǒng)應(yīng)用程序的編程進(jìn)行優(yōu)化,使用Go編譯的程序可以和C或C++代碼的速度。而且更加安全,支持并行進(jìn)程。

Go語言就是在C/C++和python之間架起了橋梁,提供了了很快的執(zhí)行速度,可快速開發(fā),使得變成高性能的語言,也讓開發(fā)變得更加迅捷。

Go語言優(yōu)勢

  • 可直接編譯成機(jī)器碼,不依賴其它庫,glibc的版本有要求,部署簡單(直接放一個文件即可)。

    • 靜態(tài)類型語言,但是有動態(tài)語言的感覺。

    • 靜態(tài)類型的語言:可以在編譯的時候檢查出隱藏的大多數(shù)問題

  • 動態(tài)類型的語言:很多包都可以直接使用,使得寫代碼的效率很高。

  • 語言層面而言,支持開發(fā),也是Go語言的特色,使得Go可以直接充分利用多核,可以很容易地使用并發(fā),這也是很多公司用作Go做后臺服務(wù)器的原因之一。

  • 內(nèi)置Runtime,支持垃圾回收,這一特性屬于動態(tài)語言的特性之一,對于早期版本Go的GC(垃圾回收機(jī)制)不完美,但是足以應(yīng)對多數(shù)情況。

  • 簡單易學(xué),Go語言的作者有C的基礎(chǔ)。所以很多部分繼承了C的內(nèi)容,包括大多數(shù)語言中的特性:繼承、重載、對象等。

  • 豐富的標(biāo)準(zhǔn)庫,Go語言目前內(nèi)置了大量的庫,特別是網(wǎng)絡(luò)庫。

  • 內(nèi)置強(qiáng)大的工具,Go語言內(nèi)置了很多工具鏈,例如gofint工具,自動化格式化代碼。
    跨平臺編譯

  • 內(nèi)嵌C支持,Go里面也可直接包含C代碼,利用現(xiàn)有豐富的C庫。

    Go語言的適合用途

  • 服務(wù)器編程(處理日志、數(shù)據(jù)打包、虛擬機(jī)處理、文件系統(tǒng)等),相比于在Go之前,都是C或C++在做類似的事情。

  • 分布式系統(tǒng)、數(shù)據(jù)庫代理器等。

  • 網(wǎng)絡(luò)編程(應(yīng)用最廣的領(lǐng)域):包括了Web應(yīng)用、API應(yīng)用、下載應(yīng)用。

  • 內(nèi)存數(shù)據(jù)庫:如Google開發(fā)的groupcache、couchbase的部分組建。

  • 云平臺

    環(huán)境搭建

    由于我的是MAC系統(tǒng),對于Fusion而言,只安裝了Ubuntu系統(tǒng),所以對于windows安裝環(huán)境下學(xué)習(xí)小伙伴,可以直接Google Search一下。

MAC OS環(huán)境下的安裝使用 brew

brew install go

或者

brew install golang

Ubuntu系統(tǒng)環(huán)境下直接在命令行:

apt install golang-go

在安裝完成之后,可直接使用go  version來查看go是否安裝成功和查看它的版本。

對于Go的環(huán)境搭建之后,就是對于編譯器的選擇,個人特別喜歡JetBrains家族中的Goland,具體的安裝可以Google Search一下。

標(biāo)準(zhǔn)命令概述

對于標(biāo)準(zhǔn)命令的概述具體可以參考:https://studygolang.com/pkgdoc

第一個Go語言

Go 語言的基礎(chǔ)組成有以下幾個部分:

  • 包聲明

  • 引入包

  • 函數(shù) / 函數(shù)體

  • 變量

  • 語句 & 表達(dá)式

  • 注釋

package main // package main 定義了包名。必須在源文件中非注釋的第一行指明這個文件屬于哪個包

import (

"fmt" 

) /* import "fmt" 告訴 Go 編譯器這個程序需要使用 fmt 包(的函數(shù),或其他元素),fmt 包實(shí)現(xiàn)了格式化 IO(輸入/輸出)的函數(shù)。 */

func main() { // func main() 是程序開始執(zhí)行的函數(shù)(函數(shù)的入口)。main 函數(shù)是每一個可執(zhí)行程序所必須包含的,一般來說都是在啟動后第一個執(zhí)行的函數(shù)(如果有 init() 函數(shù)則會先執(zhí)行該數(shù))。

   /* 這是hello world的程序 */  //  /*...*/ 是注釋,在程序執(zhí)行時將被忽略。單行注釋是最常見的注釋形式,你可以在任何地方使用以 // 開頭的單行注釋。多行注釋也叫塊注釋,均已以 /* 開頭,并以 */ 結(jié)尾,且不可以嵌套使用,多行注釋一般用于包的文檔描述或注釋成塊的代碼片段。

   fmt.Println("Hello,Go World!") //  fmt.Println(...) 可以將字符串輸出到控制臺,并在最后自動增加換行字符 \n。 Print 和 Println 這兩個函數(shù)也支持使用變量

}

關(guān)于包,根據(jù)本地測試得出以下幾點(diǎn):

文件名與包名沒有直接關(guān)系,不一定要將文件名與包名定成同一個。
文件夾名與包名沒有直接關(guān)系,并非需要一致。
同一個文件夾下的文件只能有一個包名,否則編譯報錯。

感謝各位的閱讀!關(guān)于“Golang的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

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

AI