国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[Go]-Go語言第一課

這篇具有很好參考價值的文章主要介紹了[Go]-Go語言第一課。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

1-1 Go語言特點(diǎn)

特點(diǎn):
1. 靜態(tài)類型,編譯開源語言

2. 腳本化的語法,支持多種編程范式(函數(shù)式,面向?qū)ο螅?
3. 原生,給力的并發(fā)支持并發(fā)編程

1-2 Go語言優(yōu)勢與劣勢

Go語言的優(yōu)勢:
1.腳本化的語法;開發(fā)效率高,容易上手

2.靜態(tài)類型+編譯型,程序運(yùn)行速度有保障;靜態(tài)類型+編譯型語言相對于動態(tài)類型+解釋型語言的效率高

3.原生的支持并發(fā)編程;降低開發(fā)、維護(hù)成本/程序可以更好的執(zhí)行

Go語言的劣勢:
1.語法糖并沒有Python和Ruby多;

2.目前的程序運(yùn)行速度還不及C;比C++、java快

3.第三方函數(shù)庫暫時不像絕對主流的編程語言那樣多;

1-3 Linux下的安裝

win & mac
下載安裝包安裝即可

Linux
1. wget https://go.dev/dl/go1.20.4.linux-arm64.tar.gz
2. tar -zxf go1.20.4.linux-arm64.tar.gz -C /usr/local

1-4 Linux下的環(huán)境變量

vim /etc/profile
#當(dāng)前安裝目錄
export GOROOT=/usr/local/go

#工作區(qū)的集合
export GOPATH=~/golib:~/goproject

#可執(zhí)行文件的目錄
export GOBIN=~/gobin

export PATH=$PATH:$GOROOT/bin:$GOBIN

source /etc/profile

go version

2-1 Go語言-工作區(qū)和GOPATH

工作區(qū)是放置Go源碼文件的目錄;一般情況下,Go源碼文件都需要存放到工作區(qū)中;但是對于命令源碼文件來說,這不是必須的。

每一個工作區(qū)的結(jié)構(gòu)都類似下圖所示:/home/hypermind/golib:     src/    pkg/   bin/
   
src目錄用于存放源碼文件;以代碼包為組織形式
   
pkg目錄用于存放歸檔文件(名稱以.a為后綴的文件)  所有歸檔文件都會被存放到該目錄下的平臺相關(guān)目錄中,用樣以代碼包為組織形式
   
平臺相關(guān)目錄:兩個隱含的Go語言環(huán)境變量:GOOS(操作系統(tǒng))和GOARCH(計(jì)算機(jī)架構(gòu))。以$GOOS_$GOPATH為命名方式,如:linux_amd64
      
<工作區(qū)目錄>/pkg/<平臺相關(guān)目錄>/<一級代碼包>/<二級代碼包>/<末級代碼包>.a
      
bin目錄:用于存放當(dāng)前工作區(qū)中的Go程序的可執(zhí)行文件
   
1.當(dāng)環(huán)境變量GOBIN已有效設(shè)置時,該目錄會變的無意義;
2.當(dāng)GOPATH的值中包含多個工作區(qū)的路徑時,必須設(shè)置GOBIN,否則無法成功安裝Go程序的可執(zhí)行文件

2-2 Go語言-源碼文件的分類和含義

Go源碼文件:名稱以.go為后綴,內(nèi)容以Go語言代碼組織的文件 多個Go源碼文件是需要用代碼包組織起來的

源碼文件分為三類:命令源碼文件、庫源碼文件(go語言程序) 測試源碼文件(輔助源碼文件)

命令源碼文件:聲明自己屬于main代碼包、包含無參數(shù)聲明和結(jié)果聲明的main函數(shù);被安裝后,相應(yīng)的可執(zhí)行文件會被存放到GOBIN指向的目錄或<當(dāng)前工作區(qū)目錄>/bin下
命令源碼文件是Go程序的入口,但不建議把程序都寫在一個文件中;同一個代碼包中強(qiáng)烈不建議直接包含多個命令源碼文件。

庫源碼文件:不具備命令源碼文件的那兩個特征的源碼文件, 被安裝后,相應(yīng)的歸檔文件會被存放到<當(dāng)前工作區(qū)目錄>/pkg/<平臺相關(guān)目錄>下

測試源碼文件:不具備命令源碼文件的那兩個特征的源碼文件。名稱以_test.go為后綴。其中至少有一個函數(shù)的名稱以Test或Benchmark為前綴。并且,該函數(shù)接受一個類型為
*testing.T或*testing.B的參數(shù)

func TestFind(t *testing.T){//省略若干條語句} 
func BenchmarkFind(b *testing.B){//省略若干條語句}

2-3&4 Go語言-代碼包的相關(guān)知識

代碼包的作用:編譯和歸檔Go程序的最基本單位。代碼劃分、集結(jié)和依賴的有效組織形式,也是權(quán)限控制的輔助手段
   代碼包的規(guī)則:一個代碼包實(shí)際上就是一個由導(dǎo)入路徑代表的目錄;導(dǎo)入路徑即<工作區(qū)目錄>/src或<工作區(qū)目錄>/pkg/<平臺相關(guān)目錄>之下的某段子路徑
               例如:代碼包hypermind.cn可以對應(yīng)于/home/hypermind/golib/src/hypermind.cn目錄。(其中 /home/hypermind/golib是一個工作區(qū)目錄)
   代碼包的聲明:每個源碼文件必須聲明其所屬的代碼包;同一個代碼包中的所有源碼文件聲明的代碼包應(yīng)該是相同的。
   代碼包聲明與代碼包導(dǎo)入路徑的區(qū)別:
       代碼包聲明:代碼包聲明語句中的包名稱應(yīng)該是該代碼包的導(dǎo)入路徑的最右子路徑,例如:hypermind.cn/pkgtool           package pkgtool
       代碼包導(dǎo)入語句中使用的包名稱應(yīng)該與其導(dǎo)入路徑一致,例如:  flag   fmt  strings    import("flag" "fmt" "strings")
       代碼包的導(dǎo)入方法:帶別名的導(dǎo)入:import str "strings"   str.HasPrefix("abc","a")
                       本地化的導(dǎo)入:import ."strings"  HasPrefix("abc","a")
                       僅僅初始化:import _"strings"    僅執(zhí)行代碼包中的初始化函數(shù)
                       

代碼包初始化函數(shù):無參數(shù)聲明和結(jié)果聲明的init函數(shù)

init函數(shù)可以被聲明在任何文件中,且可以有多個

init函數(shù)的執(zhí)行時機(jī)——單一代碼包內(nèi)

1對所有全局變量進(jìn)行求值  2執(zhí)行所有init函數(shù)

如果在不同對代碼包內(nèi)

1執(zhí)行被導(dǎo)入對代碼包中對init函數(shù)  2執(zhí)行導(dǎo)入它對那個代碼包對init函數(shù)

導(dǎo)入順序  A——B——C 執(zhí)行順序 C——B——A

init函數(shù)肯定在main函數(shù)之前先執(zhí)行,每一個init函數(shù)都只會執(zhí)行一次

3-1 go run 命令簡介

go run命令:
用于運(yùn)行命令源碼文件
只能接受一個命令源碼文件以及若干個庫源碼文件作為文件參數(shù)

[Go]-Go語言第一課

goc2p項(xiàng)目地址:https://github.com/hyper-carrot/goc2p

用go編寫了ds和pds,用以打印目錄結(jié)構(gòu)

3-4 go run 常用標(biāo)記的使用

-v:列出被編譯的代碼包的名稱
-work: 顯示編譯時創(chuàng)建的臨時工作目錄的路徑,并且不刪除它
-x: 打印編譯過程中所需運(yùn)行的命令

-n;打印編譯過程中所需的命令,但并不執(zhí)行
-x:打印編譯過程中所需的命令,并執(zhí)行他們。

3-6 go build 命令簡介

go build 簡介(1)

用于編譯源碼文件或代碼包

編譯非命令源碼文件不會產(chǎn)生任何結(jié)果文件

編譯命令源碼文件會在該命令的執(zhí)行目錄中生成一個可執(zhí)行文件

Go build 簡介(2)

執(zhí)行該命令且不追加任何參數(shù)時,它會試圖把當(dāng)前目錄作為代碼包并編譯

執(zhí)行該命令且以代碼包的導(dǎo)入路徑作為參數(shù)時,該代碼包及其依賴會被編譯

執(zhí)行該命令且以若干源碼文件作為參數(shù)時,只有這些文件會被編譯

3-8 go install 命令簡介

go Install 簡介(1)

用于編譯并安裝代碼包或源碼文件

安裝代碼包會在當(dāng)前工作區(qū)的 pkg/<平臺相關(guān)目錄> 下生成歸檔文件

安裝命令源碼文件會在當(dāng)前工作區(qū)的 bin 目錄或 $GOBIN 目錄下生成可執(zhí)行文件

go install 簡介(2)

執(zhí)行該命令且不追加任何參數(shù)時,它會試圖把當(dāng)前目錄作為代碼包并安裝

執(zhí)行該命令且以代碼包的導(dǎo)入路徑作為參數(shù)時,該代碼包及其依賴會被安裝

執(zhí)行該命令且以命令源碼文件及相關(guān)庫源碼文件作為參數(shù)時,只有這些文件會被編譯并安裝

3-10 go get 命令簡介

go get
用于從遠(yuǎn)程代碼倉庫(如GitHub)上下載并安裝代碼包

受支持的代碼版本控制系統(tǒng)有:Git Mercurial(hg) SVN Bazaar

指定的代碼包會被下載到$GOPATH中包含的第一個工作區(qū)的src目錄中

3-12 go get 常用標(biāo)記的使用

go get:

-d : 只執(zhí)行下載動作, 不執(zhí)行安裝動作

-fix :在下載代碼包后先執(zhí)行修正動作,而后再進(jìn)行編譯和安裝

-u : 利用網(wǎng)絡(luò)來更新已有的代碼包及其依賴包

go命令教程:https://github.com/hyper-carrot/go_command_tutorial

4-1 程序?qū)嶓w與關(guān)鍵字

[Go]-Go語言第一課文章來源地址http://www.zghlxwxcb.cn/news/detail-493622.html

到了這里,關(guān)于[Go]-Go語言第一課的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 《Go 語言第一課》課程學(xué)習(xí)筆記(十一)

    《Go 語言第一課》課程學(xué)習(xí)筆記(十一)

    針對程序的分支結(jié)構(gòu),Go 提供了 if 和 switch-case 兩種語句形式;而針對循環(huán)結(jié)構(gòu),Go 只保留了 for 這一種循環(huán)語句形式。 if 語句 if 語句是 Go 語言中提供的一種分支控制結(jié)構(gòu),它也是 Go 中最常用、最簡單的分支控制結(jié)構(gòu)。它會根據(jù)布爾表達(dá)式的值,在兩個分支中選擇一個執(zhí)行

    2024年02月11日
    瀏覽(58)
  • 《Go 語言第一課》課程學(xué)習(xí)筆記(八)

    《Go 語言第一課》課程學(xué)習(xí)筆記(八)

    Go 語言的類型大體可分為基本數(shù)據(jù)類型、復(fù)合數(shù)據(jù)類型和接口類型這三種。 其中,我們?nèi)粘?Go 編碼中使用最多的就是基本數(shù)據(jù)類型,而基本數(shù)據(jù)類型中使用占比最大的又是數(shù)值類型。 Go 語言的整型,主要用來表示現(xiàn)實(shí)世界中整型數(shù)量等。它可以分為平臺無關(guān)整型和平臺相關(guān)

    2024年02月12日
    瀏覽(40)
  • 《Go 語言第一課》課程學(xué)習(xí)筆記(二)

    在 Go 語言中編寫一個可以打印出“hello,world”的示例程序,我們只需要簡單兩步,一是創(chuàng)建文件夾,二是開始編寫和運(yùn)行。 通常來說,Go 不會限制我們存儲代碼的位置,建議創(chuàng)建一個可以集合所有項(xiàng)目的根文件夾(比如:~/goprojects),然后將所有的項(xiàng)目都放在里面。 對于

    2024年02月12日
    瀏覽(27)
  • 第一課-C 語言,IDE, 編譯器

    第一課-C 語言,IDE, 編譯器

    C/C++ 語言的優(yōu)勢: ?語法簡單結(jié)構(gòu)緊湊; ?- 32個,9種控制語句 ?代碼書寫靈活; ?有豐富多樣的運(yùn)算符;- 34個運(yùn)算符 ?有豐富的數(shù)據(jù)結(jié)構(gòu); ?幾乎是現(xiàn)在計(jì)算機(jī)語言的鼻祖。 ?指令,指令集,程序 ? ?按是否強(qiáng)制類型分類: ?? ?強(qiáng)類型語言(必須指明變量類型) c c++ ??

    2023年04月08日
    瀏覽(19)
  • 理解SpringIOC和DI第一課(Spring的特點(diǎn)),IOC對應(yīng)五大注解,ApplicationContext vs BeanFactory

    理解SpringIOC和DI第一課(Spring的特點(diǎn)),IOC對應(yīng)五大注解,ApplicationContext vs BeanFactory

    對象這個詞在Spring范圍內(nèi),稱為bean Spring兩大核心思想 1.IOC ? ? (IOC是控制反轉(zhuǎn),意思是 控制權(quán)反轉(zhuǎn)-控制權(quán)(正常是誰用這個對象,誰去創(chuàng)建,)-控制對象的控制權(quán),反轉(zhuǎn)的意思是創(chuàng)建對象的控制權(quán),交給了Spring) 優(yōu)點(diǎn):解耦合 高內(nèi)聚:一個模塊內(nèi)部的關(guān)系 低耦合:各個模

    2024年02月04日
    瀏覽(16)
  • zookeeper第一課-Zookeeper特性與節(jié)點(diǎn)數(shù)據(jù)類型詳解

    zookeeper第一課-Zookeeper特性與節(jié)點(diǎn)數(shù)據(jù)類型詳解

    ZooKeeper 是一個開源的分布式協(xié)調(diào)框架,是Apache Hadoop 的一個子項(xiàng)目,主要用來解決分布式集群中應(yīng)用系統(tǒng)的一致性問題。 Zookeeper 的設(shè)計(jì)目標(biāo)是將那些復(fù)雜且容易出錯的分布式一致性服務(wù)封裝起來,構(gòu)成一個高效可靠的原語集,并以一系列簡單易用的接口提供給用戶使用。

    2024年02月13日
    瀏覽(27)
  • python第一課:如何學(xué)好一門語言

    1)了解編程語言的特性和歷史 2)了解編程語言的基本語法 3)選擇開發(fā)工具并實(shí)現(xiàn)第一個程序 4)選擇一個編程手冊,便于查閱 5)選擇一個流行的開源框架,并掌握 6)不斷實(shí)踐,并養(yǎng)成閱讀技術(shù)博客的習(xí)慣 1:了解編程語言的特性與發(fā)展歷史 Python是一種通用的高級編程語

    2024年01月18日
    瀏覽(22)
  • 易語言&miniblink交互教程——第一課 了解 miniblink
  • 復(fù)習(xí)第一課 C語言-ubuntu下的命令

    復(fù)習(xí)第一課 C語言-ubuntu下的命令

    目錄 linux命令 【1】打開關(guān)閉終端 【2】終端 【3】ls命令 【4】cd 切換路徑 【5】新建 【6】刪除 【7】復(fù)制 【8】移動 【9】常用快捷鍵 【10】vi編輯器 【11】簡單編程步驟 任務(wù): 【1】打開關(guān)閉終端 打開終端: 1. 直接點(diǎn)擊 2. ctrl alt t : 在家目錄下打開終端 3. ctrl shift n :在當(dāng)前

    2024年02月16日
    瀏覽(21)
  • HarmonyOS第一課ArkTS開發(fā)語言(TypeScript快速入門)

    HarmonyOS第一課ArkTS開發(fā)語言(TypeScript快速入門)

    ArkTS是HarmonyOS優(yōu)選的主力應(yīng)用開發(fā)語言。它在TypeScript(簡稱TS)的基礎(chǔ)上,匹配ArkUI框架,擴(kuò)展了聲明式UI、狀態(tài)管理等相應(yīng)的能力,讓開發(fā)者以更簡潔、更自然的方式開發(fā)跨端應(yīng)用。要了解什么是ArkTS,我們首先要了解下ArkTS、TypeScript和JavaScript之間的關(guān)系: JavaScript是一種屬

    2024年02月05日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包