正式場合多稱呼姓氏,熟人之間多叫名字。另外在英語中,名字很少,而姓氏眾多,所以,叫姓氏比較不容易重名。
我們提供的服務有:成都網站制作、網站建設、微信公眾號開發(fā)、網站優(yōu)化、網站認證、普蘭ssl等。為1000+企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的普蘭網站制作公司
運算符用于在程序運行時執(zhí)行數學或邏輯運算。
1.算術運算符
Go 語言的算術運算符如圖,假設A值為10,B值為20。
2.關系運算符
Go 語言的關系運算符如圖,假設A值為10,B值為20。
3.邏輯運算符
Go 語言的邏輯運算符如圖。假定A值為True,B值為False。
4.位運算符
位運算符對整數在內存中的二進制位進行操作。
位運算符比一般的算術運算符速度要快,而且可以實現一些算術運算符不能實現的功能。如果要開發(fā)高效率程序,位運算符是必不可少的。
Go 語言的位運算符如圖。假定 A = 60,B = 13,其二進制數轉換如下。
A = 0011 1100
B = 0000 1101
5.賦值運算符
Go 語言的賦值運算符如圖。
6.其他運算符
Go 語言的其他運算符如圖。
運算符的優(yōu)先級
所謂優(yōu)先級,就是當多個運算符出現在同一個表達式中時,先執(zhí)行哪個運算符。
go語言中的for循環(huán),只有for關鍵字,去除了像其他語言中的while和do while.
注意:for表達式不用加括號
循環(huán)輸出1到10
運行結果
初始條件,可以寫到外面
運行結果
初始條件和結束條件都可以省略
運行結果
這種情況類似其他語言中的while循環(huán)
永真循環(huán)
運行結果
for循環(huán)可以通過break、goto、return、panic語句強制退出循環(huán)。
作為C語言家族的一員,go和c一樣也支持結構體。可以類比于java的一個POJO。
在學習定義結構體之前,先學習下定義一個新類型。
新類型 T1 是基于 Go 原生類型 int 定義的新自定義類型,而新類型 T2 則是 基于剛剛定義的類型 T1,定義的新類型。
這里要引入一個底層類型的概念。
如果一個新類型是基于某個 Go 原生類型定義的, 那么我們就叫 Go 原生類型為新類型的底層類型
在上面的例子中,int就是T1的底層類型。
但是T1不是T2的底層類型,只有原生類型才可以作為底層類型,所以T2的底層類型還是int
底層類型是很重要的,因為對兩個變量進行顯式的類型轉換,只有底層類型相同的變量間才能相互轉換。底層類型是判斷兩個類型本質上是否相同的根本。
這種類型定義方式通常用在 項目的漸進式重構,還有對已有包的二次封裝方面
類型別名表示新類型和原類型完全等價,實際上就是同一種類型。只不過名字不同而已。
一般我們都是定義一個有名的結構體。
字段名的大小寫決定了字段是否包外可用。只有大寫的字段可以被包外引用。
還有一個點提一下
如果換行來寫
Age: 66,后面這個都好不能省略
還有一個點,觀察e3的賦值
new返回的是一個指針。然后指針可以直接點號賦值。這說明go默認進行了取值操作
e3.Age 等價于 (*e3).Age
如上定義了一個空的結構體Empty。打印了元素e的內存大小是0。
有什么用呢?
基于空結構體類型內存零開銷這樣的特性,我們在日常 Go 開發(fā)中會經常使用空 結構體類型元素,作為一種“事件”信息進行 Goroutine 之間的通信
這種以空結構體為元素類建立的 channel,是目前能實現的、內存占用最小的 Goroutine 間通信方式。
這種形式需要說的是幾個語法糖。
語法糖1:
對于結構體字段,可以省略字段名,只寫結構體名。默認字段名就是結構體名
這種方式稱為 嵌入字段
語法糖2:
如果是以嵌入字段形式寫的結構體
可以省略嵌入的Reader字段,而直接訪問ReaderName
此時book是一個各個屬性全是對應類型零值的一個實例。不是nil。這種情況在Go中稱為零值可用。不像java會導致npe
結構體定義時可以在字段后面追加標簽說明。
tag的格式為反單引號
tag的作用是可以使用[反射]來檢視字段的標簽信息。
具體的作用還要看使用的場景。
比如這里的tag是為了幫助 encoding/json 標準包在解析對象時可以利用的規(guī)則。比如omitempty表示該字段沒有值就不打印出來。
golang定義可變參數的函數方法是:
—- 采用ANSI標準形式時,參數個數可變的函數的原型聲明是:
type funcname(type para1, type para2, …)
—- 這種形式至少需要一個普通的形式參數,后面的省略號不表示省略,而是函數原型的一部分。type是函數返回值和形式參數的類型。
—- 采用與UNIX System V兼容的聲明方式時,參數個數可變的函數原型是:
type funcname(va_alist)
va_dcl
—- 這種形式不需要提供任何普通的形式參數。
type是函數返回值的類型。va_dcl是對函數原型聲明中參數va_alist的詳細聲明,實際是一個宏定義,對不同的硬件平臺采用不同的類型來定義,但在最后都包括了一個分號。因此va_dcl后不再需要加上分號了。va_dcl在代碼中必須原樣給出。va_alist在VC中可以原樣給出,也可以略去。
此外,采用頭文件stdarg.h編寫的程序是符合ANSI標準的,可以在各種操作系統(tǒng)和硬件上運行;而采用頭文件varargs.h的方式僅僅是為了與以前的程序兼容。所以建議使用前者。
本文介紹一些Go語言的基礎語法。
先來看一個簡單的go語言代碼:
go語言的注釋方法:
代碼執(zhí)行結果:
下面來進一步介紹go的基礎語法。
go語言中格式化輸出可以使用 fmt 和 log 這兩個標準庫,
常用方法:
示例代碼:
執(zhí)行結果:
更多格式化方法可以訪問中的fmt包。
log包實現了簡單的日志服務,也提供了一些格式化輸出的方法。
執(zhí)行結果:
下面來介紹一下go的數據類型
下表列出了go語言的數據類型:
int、float、bool、string、數組和struct屬于值類型,這些類型的變量直接指向存在內存中的值;slice、map、chan、pointer等是引用類型,存儲的是一個地址,這個地址存儲最終的值。
常量是在程序編譯時就確定下來的值,程序運行時無法改變。
執(zhí)行結果:
執(zhí)行結果:
Go 語言的運算符主要包括算術運算符、關系運算符、邏輯運算符、位運算符、賦值運算符以及指針相關運算符。
算術運算符:
關系運算符:
邏輯運算符:
位運算符:
賦值運算符:
指針相關運算符:
下面介紹一下go語言中的if語句和switch語句。另外還有一種控制語句叫select語句,通常與通道聯(lián)用,這里不做介紹。
if語法格式如下:
if ... else :
else if:
示例代碼:
語法格式:
另外,添加 fallthrough 會強制執(zhí)行后面的 case 語句,不管下一條case語句是否為true。
示例代碼:
執(zhí)行結果:
下面介紹幾種循環(huán)語句:
執(zhí)行結果:
執(zhí)行結果:
也可以通過標記退出循環(huán):
--THE END--
網站欄目:Go語言省略號 go語言后綴
標題鏈接:http://newbst.com/article4/doojjie.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站排名、品牌網站設計、外貿建站、小程序開發(fā)、云服務器、網站維護
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)