go語言條件語句 go 條件編譯

Go語言基礎語法(一)

本文介紹一些Go語言的基礎語法。

同心網站制作公司哪家好,找創新互聯!從網頁設計、網站建設、微信開發、APP開發、成都響應式網站建設公司等網站項目制作,到程序開發,運營維護。創新互聯成立與2013年到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創新互聯。

先來看一個簡單的go語言代碼:

go語言的注釋方法:

代碼執行結果:

下面來進一步介紹go的基礎語法。

go語言中格式化輸出可以使用 fmt 和 log 這兩個標準庫,

常用方法:

示例代碼:

執行結果:

更多格式化方法可以訪問中的fmt包。

log包實現了簡單的日志服務,也提供了一些格式化輸出的方法。

執行結果:

下面來介紹一下go的數據類型

下表列出了go語言的數據類型:

int、float、bool、string、數組和struct屬于值類型,這些類型的變量直接指向存在內存中的值;slice、map、chan、pointer等是引用類型,存儲的是一個地址,這個地址存儲最終的值。

常量是在程序編譯時就確定下來的值,程序運行時無法改變。

執行結果:

執行結果:

Go 語言的運算符主要包括算術運算符、關系運算符、邏輯運算符、位運算符、賦值運算符以及指針相關運算符。

算術運算符:

關系運算符:

邏輯運算符:

位運算符:

賦值運算符:

指針相關運算符:

下面介紹一下go語言中的if語句和switch語句。另外還有一種控制語句叫select語句,通常與通道聯用,這里不做介紹。

if語法格式如下:

if ... else :

else if:

示例代碼:

語法格式:

另外,添加 fallthrough 會強制執行后面的 case 語句,不管下一條case語句是否為true。

示例代碼:

執行結果:

下面介紹幾種循環語句:

執行結果:

執行結果:

也可以通過標記退出循環:

--THE END--

go語言select的作用

Go里面提供了一個關鍵字select,通過select可以監聽channel上的數據流動。

select的用法與switch語言非常類似,由select開始一個新的選擇塊,每個選擇條件由case語句來描述。

與switch語句相比, select有比較多的限制,其中最大的一條限制就是每個case語句里必須是一個IO操作,大致的結構如下:

在一個select語句中,Go語言會按順序從頭至尾評估每一個發送和接收的語句。

如果其中的任意一語句可以繼續執行(即沒有被阻塞),那么就從那些可以執行的語句中任意選擇一條來使用。

如果沒有任意一條語句可以執行(即所有的通道都被阻塞),那么有兩種可能的情況:

如果給出了default語句,那么就會執行default語句,同時程序的執行會從select語句后的語句中恢復。

如果沒有default語句,那么select語句將被阻塞,直到至少有一個通信可以進行下去

有時候會出現goroutine阻塞的情況,那么我們如何避免整個程序進入阻塞的情況呢?我們可以利用select來設置超時,通過如下的方式實現:

select總結:

作用: 用來監聽 channel 上的數據流動方向。 讀?寫?

select實現fibonacci數列:

Golang入門到項目實戰 | golang中的if語句

go語言中的if語句和其他語言中的類似,都是根據給定的條件表達式運算結果來,判斷執行流程。

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

根據布爾值flag判斷

程序運行結果

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

程序運行結果

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

go語言if語句使用提示:

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

比較兩個數的大小

運行結果

判斷一個數是奇數還是偶數

運行結果

判斷一個人是否成年

運行結果

特殊寫法,在if前面添加執行語句

運行結果

go語言if語句使用提示:

go語言if語句可以進行多重嵌套使用,進行多重判斷。

根據分數判斷等級

運行結果

同樣也可以寫成這樣

運行結果

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

運行結果

go語言if語句可以嵌套多級進行判斷。

判斷三個數的大小

運行結果

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

運行結果

Go語言和其他語言的不同之基本語法

Go語言作為出現比較晚的一門編程語言,在其原生支持高并發、云原生等領域的優秀表現,像目前比較流行的容器編排技術Kubernetes、容器技術Docker都是用Go語言寫的,像Java等其他面向對象的語言,雖然也能做云原生相關的開發,但是支持的程度遠沒有Go語言高,憑借其語言特性和簡單的編程方式,彌補了其他編程語言一定程度上的不足,一度成為一個熱門的編程語言。

最近在學習Go語言,我之前使用過C#、Java等面向對象編程的語言,發現其中有很多的編程方式和其他語言有區別的地方,好記性不如爛筆頭,總結一下,和其他語言做個對比。這里只總結差異的地方,具體的語法不做詳細的介紹。

種一棵樹最好的時間是十年前,其次是現在。

3)變量初始化時候可以和其他語言一樣直接在變量后面加等號,等號后面為要初始化的值,也可以使用變量名:=變量值的簡單方式

3)變量賦值 Go語言的變量賦值和多數語言一致,但是Go語言提供了多重賦值的功能,比如下面這個交換i、j變量的語句:

在不支持多重賦值的語言中,交換兩個變量的值需要引入一個中間變量:

4)匿名變量

在使用其他語言時,有時候要獲取一個值,卻因為該函數返回多個值而不得不定義很多沒有的變量,Go語言可以借助多重返回值和匿名變量來避免這種寫法,使代碼看起來更優雅。

假如GetName()函數返回3個值,分別是firstName,lastName和nickName

若指向獲得nickName,則函數調用可以這樣寫

這種寫法可以讓代碼更清晰,從而大幅降低溝通的復雜度和維護的難度。

1)基本常量

常量使用關鍵字const 定義,可以限定常量類型,但不是必須的,如果沒有定義常量的類型,是無類型常量

2)預定義常量

Go語言預定義了這些常量 true、false和iota

iota比較特殊,可以被任務是一個可被編譯器修改的常量,在每個const關鍵字出現時被重置為0,然后在下一個const出現之前每出現一個iota,其所代表的數字會自動加1.

3)枚舉

1)int 和int32在Go語言中被認為是兩種不同類型的類型

2)Go語言定義了兩個浮點型float32和float64,其中前者等價于C語言的float類型,后者等價于C語言的double類型

3)go語言支持復數類型

復數實際上是由兩個實數(在計算機中使用浮點數表示)構成,一個表示實部(real)、一個表示虛部(imag)。也就是數學上的那個復數

復數的表示

實部與虛部

對于一個復數z=complex(x,y),就可以通過Go語言內置函數real(z)獲得該復數的實部,也就是x,通過imag(z)獲得該復數的虛部,也就是y

4)數組(值類型,長度在定義后無法再次修改,每次傳遞都將產生一個副本。)

5)數組切片(slice)

數組切片(slice)彌補了數組的不足,其數據結構可以抽象為以下三個變量:

6)Map 在go語言中Map不需要引入任何庫,使用很方便

Go循環語句只支持for關鍵字,不支持while和do-while

goto語句的語義非常簡單,就是跳轉到本函數內的某個標簽

今天就介紹到這里,以后我會在總結Go語言在其他方面比如并發編程、面向對象、網絡編程等方面的不同及使用方法。希望對大家有所幫助。

文章標題:go語言條件語句 go 條件編譯
文章地址:http://m.kartarina.com/article8/dodsjip.html

成都網站建設公司_創新互聯,為您提供小程序開發企業網站制作、關鍵詞優化、用戶體驗營銷型網站建設外貿網站建設

廣告

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

h5響應式網站建設
主站蜘蛛池模板: 国产亚洲精品a在线无码| 免费看无码特级毛片| 精品人妻系列无码天堂| 亚洲国产日产无码精品| 免费无码黄动漫在线观看| 18禁超污无遮挡无码免费网站| 无码国产午夜福利片在线观看| 亚洲a∨无码一区二区| 久久久久亚洲精品无码网址| 精品欧洲av无码一区二区三区| 无码人妻精品一区二区蜜桃百度| 亚洲精品无码Av人在线观看国产| 中字无码av电影在线观看网站| 本免费AV无码专区一区| 亚洲中文字幕久久无码| 一区二区三区无码视频免费福利| 中文字幕韩国三级理论无码| 亚洲日韩v无码中文字幕| 无码熟熟妇丰满人妻啪啪软件 | 亚洲AV色吊丝无码| 久久久久无码精品| 狠狠久久精品中文字幕无码| 久久久久无码精品国产| 少妇性饥渴无码A区免费 | av无码国产在线看免费网站| 无码国模国产在线观看免费| 人妻无码一区二区不卡无码av| 人妻中文无码久热丝袜| yy111111电影院少妇影院无码| 黄色成人网站免费无码av| 日韩精品专区AV无码| 无码人妻久久一区二区三区免费| 精品久久久久久无码免费| 国产色无码精品视频国产| 人妻av中文字幕无码专区| 中文午夜人妻无码看片| 无码H黄肉动漫在线观看网站| 无码精品一区二区三区免费视频| 久久精品无码一区二区三区| 国产综合无码一区二区辣椒 | 国产成人AV一区二区三区无码|