成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

go語言幫助手冊 go語言工具

小白想學(xué)習(xí)go語言,哪位有教程?

如果你想每一步走得扎實,那么我的建議如下:

創(chuàng)新互聯(lián)建站專注于柳林網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供柳林營銷型網(wǎng)站建設(shè),柳林網(wǎng)站制作、柳林網(wǎng)頁設(shè)計、柳林網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務(wù),打造柳林網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供柳林網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

對一名從未接觸過程序開發(fā)的小白來說,首先得足夠了解計算機(jī),至少你得知道你寫的代碼在計算機(jī)內(nèi)部是如何運行的,你的數(shù)據(jù)是如何通過網(wǎng)絡(luò)傳輸,《微機(jī)原理與接口技術(shù)》和《TCP/IP詳解》(三卷)是很好的學(xué)習(xí)入門 之選,同時也是很好的參考手冊

一切準(zhǔn)備就緒,開始寫你的第一個程序,建議選C語言,基本的數(shù)據(jù)結(jié)構(gòu)、指針、函數(shù)、循環(huán)、條件判斷、手動GC等都上手試一遍,做到了然于胸,信手拈來

進(jìn)入正題,學(xué)習(xí)Go語言,你會發(fā)現(xiàn),換湯不換藥,程序的構(gòu)成無非那么幾類,當(dāng)然Go會有自己的特性,比如slice、goroutine、channel等,當(dāng)然這一切得基于go開發(fā)環(huán)境

至于教程,最合適的莫過于官方文檔,老老實實看完,別太在意網(wǎng)上的各種項目實戰(zhàn),先學(xué)會走路,再學(xué)跑

最重要的一點:紙上得來終覺淺,絕知此事要躬行,多敲敲代碼,熟能生巧,happy coding!

Go語言命令行利器cobra使用教程

cobra是一個提供簡單接口來創(chuàng)建強(qiáng)大的現(xiàn)代CLI界面的庫類似git git tools,cobra也是一個應(yīng)用程序,它會生成你的應(yīng)用程序的腳手架來快速開發(fā)基于cobra的應(yīng)用程序

cobra提供:

cobra建立在命令、參數(shù)、標(biāo)志的結(jié)構(gòu)之上

commands代表動作,args是事物,flags是動作的修飾符

最好的應(yīng)用程序在使用時讀起來就像句子,因此,用戶直觀地知道如何與它們交互

模式如下:APPNAME VERB NOUN --ADJECTIVE. or APPNAME COMMAND ARG --FLAG(APPNAME 動詞 名詞 形容詞 或者 APPNAME 命令 參數(shù) 標(biāo)志)

一些真實世界的好例子可以更好地說明這一點

kubectl 命令更能體現(xiàn)APPNAME 動詞 名詞 形容詞

如下的例子,server 是command,port是flag

這個命令中,我們告訴git 克隆url

命令是應(yīng)用程序的中心點,應(yīng)用程序支持的每一個交互都包含在一個命令中,命令可以有子命令,也可以運行操作

在上面的例子中,server是命令

更多關(guān)于cobra.Command

flag是一種修改命令行為的方式,cobra支持完全兼容POSIX標(biāo)志,也支持go flag package,cobra可以定義到子命令上的標(biāo)志,也可以僅對該命令可用的標(biāo)志

在上面的命令中,port是標(biāo)志

標(biāo)志的功能由 pflag library 提供,pflag library是flag標(biāo)準(zhǔn)庫的一個分支,在添加POSIX兼容性的同時維護(hù)相同的接口。

使用cobra很簡單,首先,使用go get按照最新版本的庫,這個命令會安裝cobra可執(zhí)行程序以及庫和依賴項

下一步,引入cobra到應(yīng)用程序中

雖然歡迎您提供自己的組織,但通?;贑obra的應(yīng)用程序?qū)⒆裱韵陆M織結(jié)構(gòu):

在Cobra應(yīng)用程序中,main.go文件通常非常簡單。它有一個目的:初始化Cobra。

使用cobra生成器

cobra提供了程序用來創(chuàng)建你的應(yīng)用程序然后添加你想添加的命令,這是將cobra引入應(yīng)用程序最簡單的方式

這兒 你可以發(fā)現(xiàn)關(guān)于cobra的更多信息

要手動實現(xiàn)cobra,需要創(chuàng)建一個main.go 和rootCmd文件,可以根據(jù)需要提供其他命令

Cobra不需要任何特殊的構(gòu)造器。只需創(chuàng)建命令。

理想情況下,您可以將其放在app/cmd/root.go中:

在init()函數(shù)中定義標(biāo)志和處理配置

例子如下,cmd/root.go:

創(chuàng)建main.go

使用root命令,您需要讓主函數(shù)執(zhí)行它。為清楚起見,Execute應(yīng)該在根目錄下運行,盡管它可以在任何命令上調(diào)用。

在Cobra應(yīng)用程序中,main.go文件通常非常簡單。它有一個目的:初始化Cobra。

可以定義其他命令,通常每個命令在cmd/目錄中都有自己的文件。

如果要創(chuàng)建版本命令,可以創(chuàng)建cmd/version.go并用以下內(nèi)容填充它:

如果希望將錯誤返回給命令的調(diào)用者,可以使用RunE。

然后可以在execute函數(shù)調(diào)用中捕獲錯誤。

標(biāo)志提供修飾符來控制操作命令的操作方式。

由于標(biāo)志是在不同的位置定義和使用的,因此我們需要在外部定義一個具有正確作用域的變量來分配要使用的標(biāo)志。

有兩種不同的方法來分配標(biāo)志。

標(biāo)志可以是“持久”的,這意味著該標(biāo)志將可用于分配給它的命令以及該命令下的每個命令。對于全局標(biāo)志,在根上指定一個標(biāo)志作為持久標(biāo)志。

也可以在本地分配一個標(biāo)志,該標(biāo)志只應(yīng)用于該特定命令。

默認(rèn)情況下,Cobra只解析目標(biāo)命令上的本地標(biāo)志,而忽略父命令上的任何本地標(biāo)志。通過啟用Command.TraverseChildren,Cobra將在執(zhí)行目標(biāo)命令之前解析每個命令上的本地標(biāo)志。

使用viper綁定標(biāo)志

在本例中,持久標(biāo)志author與viper綁定。注意:當(dāng)用戶未提供--author標(biāo)志時,變量author將不會設(shè)置為config中的值。

更多關(guān)于 viper的文檔

Flags默認(rèn)是可選的,如果希望命令在未設(shè)置標(biāo)志時報告錯誤,請根據(jù)需要進(jìn)行標(biāo)記:

持久性Flags

可以使用命令的Args字段指定位置參數(shù)的驗證。

內(nèi)置了以下驗證器:

在下面的示例中,我們定義了三個命令。兩個是頂級命令,一個(cmdTimes)是頂級命令之一的子命令。在這種情況下,根是不可執(zhí)行的,這意味著需要一個子命令。這是通過不為“rootCmd”提供“Run”來實現(xiàn)的。

我們只為一個命令定義了一個標(biāo)志。

有關(guān)標(biāo)志的更多文檔,請訪問

對于一個更完整的例子更大的應(yīng)用程序,請檢查 Hugo 。

當(dāng)您有子命令時,Cobra會自動將help命令添加到應(yīng)用程序中。當(dāng)用戶運行“應(yīng)用程序幫助”時,將調(diào)用此函數(shù)。此外,help還支持所有其他命令作為輸入。例如,您有一個名為“create”的命令,沒有任何附加配置;調(diào)用“app help create”時,Cobra將起作用。每個命令都會自動添加“-help”標(biāo)志。

以下輸出由Cobra自動生成。除了命令和標(biāo)志定義之外,不需要任何東西。

幫助就像其他命令一樣。它周圍沒有特殊的邏輯或行為。事實上,你可以提供你想提供的。

您可以為默認(rèn)命令提供自己的幫助命令或模板,以用于以下功能:

當(dāng)用戶提供無效的標(biāo)志或無效的命令時,Cobra通過向用戶顯示“用法”來響應(yīng)。

你可以從上面的幫助中認(rèn)識到這一點。這是因為默認(rèn)幫助將用法作為其輸出的一部分嵌入。

您可以提供自己的使用函數(shù)或模板供Cobra使用。與幫助一樣,函數(shù)和模板也可以通過公共方法重寫:

如果在root命令上設(shè)置了version字段,Cobra會添加一個頂級的'--version'標(biāo)志。運行帶有“-version”標(biāo)志的應(yīng)用程序?qū)⑹褂冒姹灸0鍖姹敬蛴〉綐?biāo)準(zhǔn)輸出??梢允褂胏md.SetVersionTemplate(s string)函數(shù)自定義模板。

可以在命令的主運行函數(shù)之前或之后運行函數(shù)。PersistentPreRun和PreRun函數(shù)將在運行之前執(zhí)行。PersistentPostRun和PostRun將在運行后執(zhí)行。如果子函數(shù)不聲明自己的函數(shù),則它們將繼承Persistent*Run函數(shù)。這些函數(shù)按以下順序運行:

輸出:

當(dāng)發(fā)生“未知命令”錯誤時,Cobra將打印自動建議。這使得Cobra在發(fā)生拼寫錯誤時的行為類似于git命令。例如:

基于注冊的每個子命令和Levenshtein距離的實現(xiàn),建議是自動的。匹配最小距離2(忽略大小寫)的每個已注冊命令都將顯示為建議。

如果需要在命令中禁用建議或調(diào)整字符串距離,請使用:

or

您還可以使用SuggestFor屬性顯式設(shè)置將為其建議給定命令的名稱。這允許對在字符串距離方面不接近的字符串提供建議,但在您的一組命令中是有意義的,并且對于某些您不需要別名的字符串。例子:

Cobra可以基于子命令、標(biāo)志等生成文檔。請在 docs generation文檔 中閱讀更多關(guān)于它的信息。

Cobra可以為以下shell生成shell完成文件:bash、zsh、fish、PowerShell。如果您在命令中添加更多信息,這些補全功能將非常強(qiáng)大和靈活。在 Shell Completions 中閱讀更多關(guān)于它的信息。

Cobra is released under the Apache 2.0 license. See LICENSE.txt

Golang——常用命令

在命令行或終端輸入go即可查看所有支持的命令

go get:獲取遠(yuǎn)程包(需提前安裝git)

go run:直接運行程序

go build:測試編譯,檢查是否有編譯錯誤

go fmt:格式化源碼(部分IDE在保存時自動調(diào)用)

go install:編譯包文件并編譯整個程序

go test:運行測試文件

go doc:查看文檔(CHM手冊)

Golang入門到項目實戰(zhàn) | golang中的if語句

go語言中的if語句和其他語言中的類似,都是根據(jù)給定的條件表達(dá)式運算結(jié)果來,判斷執(zhí)行流程。

注意:在go語言中 布爾表達(dá)式不用使用括號。

根據(jù)布爾值flag判斷

程序運行結(jié)果

初始變量可以聲明在布爾表達(dá)式里面,注意它的作用域

程序運行結(jié)果

注意:不能使用0或非0表示真假

go語言if語句使用提示:

go語言中的if else語句可以根據(jù)給定條件二選一。

比較兩個數(shù)的大小

運行結(jié)果

判斷一個數(shù)是奇數(shù)還是偶數(shù)

運行結(jié)果

判斷一個人是否成年

運行結(jié)果

特殊寫法,在if前面添加執(zhí)行語句

運行結(jié)果

go語言if語句使用提示:

go語言if語句可以進(jìn)行多重嵌套使用,進(jìn)行多重判斷。

根據(jù)分?jǐn)?shù)判斷等級

運行結(jié)果

同樣也可以寫成這樣

運行結(jié)果

輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續(xù)判斷第二個字母

運行結(jié)果

go語言if語句可以嵌套多級進(jìn)行判斷。

判斷三個數(shù)的大小

運行結(jié)果

判斷男生還是女生,還有是否成年

運行結(jié)果

網(wǎng)站欄目:go語言幫助手冊 go語言工具
URL分享:http://jinyejixie.com/article24/ddichce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、搜索引擎優(yōu)化、微信公眾號、、電子商務(wù)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)