一文搞懂Go常用語法
前言
本文是根據(jù)陽哥 知識(shí)星球中的資料 整理的學(xué)習(xí)筆記,第一章關(guān)于Go語言中常見的語法現(xiàn)象。
我的思考:
一門語言中的語法都是固定的,基礎(chǔ)語法幾乎都差不多,本篇文章涉及到 Go 入門腳本,變量,條件語句,函數(shù)等語法現(xiàn)象,用一篇文章梳理Go語言中可能出現(xiàn)的所有語言現(xiàn)象,便于初學(xué)者學(xué)習(xí)和復(fù)習(xí)所用。
一. Go 語言的 helloworld
源文件:
文件名:hello.go
對于第一個(gè)代碼的解釋:
- 源文件使用 UTF-8 編碼,對 Unicode 支持良好,每個(gè)源文件都屬于包的一部分,在文件頭部用 package 聲明所屬的包名稱。
- 以.go 作為文件的拓展名
- 相比其他語言,語句結(jié)束的分號(hào)會(huì)被默認(rèn)省略
- import 是用來導(dǎo)入標(biāo)準(zhǔn)庫或者第三方包
其他注意事項(xiàng):
- fmt.Println? 這里的 Println 的p 要大寫;
- 導(dǎo)入的包,如果有多余的可以刪掉
可以直接運(yùn)行:
二. 變量
Go 語言中使用 var 定義變量,支持類型推斷
1.定義兩個(gè)變量并輸出
輸出結(jié)果:
注意點(diǎn):
- 編譯器會(huì)把變量的初始值初始化為零,避免出現(xiàn)意外
- Printf? 和Pringln 是有區(qū)別的,不能通用。
在函數(shù)內(nèi)部,可以省略 var 關(guān)鍵字,但要注意賦值符號(hào)的變化:由 = 變成了 :=
三. 表達(dá)式
Go 語言有三種流程控制語句
3.1 if 語句
3.2 switch 語句
這里需要注意一點(diǎn):
- x=0?表示賦值,x==0 表示 ```等于``.
所以在這個(gè) case 語句中, case x=0:? 會(huì)報(bào)錯(cuò),但可以改為!= 不等于 0
執(zhí)行結(jié)果:
3.3 for 語句
for 循環(huán)的用法比較多,我們來舉幾個(gè)例子:
案例一:
下面的 for 循環(huán),類似于 while 循環(huán)的例子,比如while(x <5 {})
案例二:
案例三:打印從 10 到 0 的值
案例四:
有時(shí)候也會(huì)對列表進(jìn)行遍歷,列表定義:x:= []int{100,101,102}
在 Go 語言中,遍歷數(shù)據(jù)或切片時(shí)可以用 range,range 會(huì)產(chǎn)生兩個(gè)值,分別是數(shù)據(jù)的索引與值,就像案例四中,i和v分別表示索引和值:
索引為 0 的時(shí)候值是 100
運(yùn)行結(jié)果:
四. 函數(shù)
函數(shù)可以定義多個(gè)返回值,甚至對其命名
這里遇到一個(gè)小插曲,如下圖:
發(fā)現(xiàn)代碼會(huì)提示 b 沒有定義,在a/b位置有下劃線,但執(zhí)行結(jié)果是對的。經(jīng)過反復(fù)排查和溝通,最后發(fā)現(xiàn)是 SDK 沒有配置
沐風(fēng)曉月感謝星球群里各位幫助過我的小伙伴。
五. 數(shù)據(jù)
5.1 切片
切片可以實(shí)現(xiàn)類似動(dòng)態(tài)數(shù)組的功能:
輸出結(jié)果:
5.2 字典
運(yùn)行結(jié)果:
總結(jié)
本文后續(xù)還會(huì)持續(xù)增加一些語法現(xiàn)象,歡迎大家收藏備用。
本文轉(zhuǎn)載自微信公眾號(hào)「 程序員升級(jí)打怪之旅」,作者「王中陽Go」,可以通過以下二維碼關(guān)注。
轉(zhuǎn)載本文請聯(lián)系「 程序員升級(jí)打怪之旅」公眾號(hào)。