摘要:語(yǔ)句語(yǔ)句用于基于不同條件執(zhí)行不同動(dòng)作。引用傳遞引用傳遞是指在調(diào)用函數(shù)時(shí)將實(shí)際參數(shù)的地址傳遞到函數(shù)中,那么在函數(shù)中對(duì)參數(shù)所進(jìn)行的修改,將影響到實(shí)際參數(shù)。默認(rèn)情況下,語(yǔ)言使用的是值傳遞,即在調(diào)用過(guò)程中不會(huì)影響到實(shí)際參數(shù)。
Go 語(yǔ)言內(nèi)置的運(yùn)算符有:
1.算術(shù)運(yùn)算符:+ - * / % ++ --
2.關(guān)系運(yùn)算符:== != > < >= <=
3.邏輯運(yùn)算符:&& || !
4.位運(yùn)算符:& | ^ << >> 將其先轉(zhuǎn)換為二進(jìn)制數(shù),在根據(jù)如下表規(guī)則
p q p & q p | q p ^ q 0 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1
如假定 A = 60; B = 13; 其二進(jìn)制數(shù)轉(zhuǎn)換為:
A = 0011 1100 B = 0000 1101 ----------------- A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 A<<2 =240 二進(jìn)制為 1111 0000 左移n位就是乘以2的n次方。 A>>2 =15 二進(jìn)制為 0000 1111 右移n位就是除以2的n次方。
5.賦值運(yùn)算符
1.= 2.+= 3.-= 4.*= 5./= 6.%= 7.<<= 左移后賦值 C <<= 2 等于 C = C << 2 8.>>= 右移后賦值 C >>= 2 等于 C = C >> 2 9.&= 按位與后賦值 C &= 2 等于 C = C & 2 10.^= 按位異或后賦值 C ^= 2 等于 C = C ^ 2 11.|= 按位或后賦值 C |= 2 等于 C = C | 2
6.其他運(yùn)算符
& 返回變量存儲(chǔ)地址 實(shí)例&a:將給出變量的實(shí)際地址。 * 指針變量。 實(shí)例*a:是一個(gè)指針變量
7.運(yùn)算符優(yōu)先級(jí)
有些運(yùn)算符擁有較高的優(yōu)先級(jí),二元運(yùn)算符的運(yùn)算方向均是從左至右。下表列出了所有運(yùn)算符以及它們的優(yōu)先級(jí),由上至下代表優(yōu)先級(jí)由高到低:
優(yōu)先級(jí) 運(yùn)算符 7 ^ ! 6 * / % << >> & &^ 5 + - | ^ 4 == != < <= >= > 3 <- 2 && 1 ||
當(dāng)然,你可以通過(guò)使用括號(hào)來(lái)臨時(shí)提升某個(gè)表達(dá)式的整體運(yùn)算優(yōu)先級(jí)。
Go 語(yǔ)言條件語(yǔ)句if
if...else
if 嵌套語(yǔ)句 你可以在 if 或 else if 語(yǔ)句中嵌入一個(gè)或多個(gè) if 或 else if 語(yǔ)句。
switch 語(yǔ)句 switch 語(yǔ)句用于基于不同條件執(zhí)行不同動(dòng)作。
select 語(yǔ)句 select 語(yǔ)句類似于 switch 語(yǔ)句,但是select會(huì)隨機(jī)執(zhí)行一個(gè)可運(yùn)行的case。如果沒(méi)有case可運(yùn)行,它將阻塞,直到有case可運(yùn)行。
for 循環(huán) 重復(fù)執(zhí)行語(yǔ)句塊
循環(huán)嵌套 在 for 循環(huán)中嵌套一個(gè)或多個(gè) for 循環(huán)
循環(huán)控制語(yǔ)句
break 語(yǔ)句 經(jīng)常用于中斷當(dāng)前 for 循環(huán)或跳出 switch 語(yǔ)句
continue 語(yǔ)句 跳過(guò)當(dāng)前循環(huán)的剩余語(yǔ)句,然后繼續(xù)進(jìn)行下一輪循環(huán)。
goto 語(yǔ)句 將控制轉(zhuǎn)移到被標(biāo)記的語(yǔ)句。
循環(huán)判斷的例子輸出 1-100 素?cái)?shù):
package main import "fmt" func main() { var a, b int for a = 2; a <= 100; a++ { for b = 2; b <= (a / b); b++ { if a%b == 0 { break } } if b > (a / b) { fmt.Printf("%d 是素?cái)?shù) ", a) } } }Go 語(yǔ)言函數(shù)
Go 語(yǔ)言函數(shù)定義格式如下:
func function_name( [parameter list 參賽列表] ) [return_types 返回類型] { 函數(shù)體 }
函數(shù)參數(shù)
函數(shù)如果使用參數(shù),該變量可稱為函數(shù)的形參。
形參就像定義在函數(shù)體內(nèi)的局部變量。
調(diào)用函數(shù),可以通過(guò)兩種方式來(lái)傳遞參數(shù):
傳遞類型 描述
值傳遞:值傳遞是指在調(diào)用函數(shù)時(shí)將實(shí)際參數(shù)復(fù)制一份傳遞到函數(shù)中,這樣在函數(shù)中如果對(duì)參數(shù)進(jìn)行修改,將不會(huì)影響到實(shí)際參數(shù)。
引用傳遞 :引用傳遞是指在調(diào)用函數(shù)時(shí)將實(shí)際參數(shù)的地址傳遞到函數(shù)中,那么在函數(shù)中對(duì)參數(shù)所進(jìn)行的修改,將影響到實(shí)際參數(shù)。
默認(rèn)情況下,Go 語(yǔ)言使用的是值傳遞,即在調(diào)用過(guò)程中不會(huì)影響到實(shí)際參數(shù)。
函數(shù)用法
函數(shù)作為值 函數(shù)定義后可作為值來(lái)使用
閉包 閉包是匿名函數(shù),可在動(dòng)態(tài)編程中使用
方法 方法就是一個(gè)包含了接受者的函數(shù)
Go 語(yǔ)言中變量可以在三個(gè)地方聲明:
函數(shù)內(nèi)定義的變量稱為局部變量
函數(shù)外定義的變量稱為全局變量
函數(shù)定義中的變量稱為形式參數(shù)
package main import "fmt" /* 聲明全局變量 */ var a int = 20 func main() { /* main 函數(shù)中聲明局部變量 */ var a int = 10 var b int = 20 var c int = 0 fmt.Printf("main()函數(shù)中 a = %d ", a) c = sum(a, b) fmt.Printf("main()函數(shù)中 a = %d ", a) fmt.Printf("main()函數(shù)中 c = %d ", c) } /* 函數(shù)定義-兩數(shù)相加 */ func sum(a, b int) int { a = a + 1 fmt.Printf("sum() 函數(shù)中 a = %d ", a) fmt.Printf("sum() 函數(shù)中 b = %d ", b) return a + b } /*main()函數(shù)中 a = 10 sum() 函數(shù)中 a = 11 sum() 函數(shù)中 b = 20 main()函數(shù)中 a = 10 main()函數(shù)中 c = 31*/Go 語(yǔ)言數(shù)組
初始化數(shù)組
以下演示了數(shù)組初始化:
var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
初始化數(shù)組中 {} 中的元素個(gè)數(shù)不能大于 [] 中的數(shù)字。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/24325.html
摘要:語(yǔ)言的生日年前的今天,語(yǔ)言以開(kāi)源方式向全球發(fā)布簡(jiǎn)介語(yǔ)言又稱,是谷歌開(kāi)發(fā)的一種靜態(tài)強(qiáng)類型編譯型并發(fā)型,并具有垃圾回收功能的編程語(yǔ)言。語(yǔ)言有時(shí)被描述為類似語(yǔ)言,或者是世紀(jì)的語(yǔ)言。語(yǔ)言有一個(gè)清晰易懂的輕量級(jí)類型系統(tǒng),在類型之間也沒(méi)有層級(jí)之說(shuō)。 Go語(yǔ)言的生日 12年前的今天→ 2009.11.10...
摘要:語(yǔ)言誕生于谷歌,由計(jì)算機(jī)領(lǐng)域的三位宗師級(jí)大牛和寫成。作者華為云技術(shù)宅基地鏈接谷歌前員工認(rèn)為,比起大家熟悉的,語(yǔ)言其實(shí)有很多優(yōu)良特性,很多時(shí)候都可以代替,他已經(jīng)在很多任務(wù)中使用語(yǔ)言替代了。 Go 語(yǔ)言誕生于谷歌,由計(jì)算機(jī)領(lǐng)域的三位宗師級(jí)大牛 Rob Pike、Ken Thompson 和 Robert Griesemer 寫成。由于出身名門,Go 在誕生之初就吸引了大批開(kāi)發(fā)者的關(guān)注。誕生...
摘要:覺(jué)得好的話,順手分享到朋友圈吧,感謝支持。抓住時(shí)代的趨勢(shì)在上篇文章中,也就是那個(gè)跨維度的打擊,是可以直接秒殺的中,提到這個(gè)時(shí)代的問(wèn)題,這次針對(duì)語(yǔ)言的前景分析,其實(shí)我也想講一下時(shí)代的問(wèn)題。目前語(yǔ)言就處于這樣一個(gè)不錯(cuò)的時(shí)代中。 本文為原創(chuàng)文章,轉(zhuǎn)載注明出處,asdfasdfasdf 歡迎掃碼關(guān)注公眾號(hào)flysnow_org或者網(wǎng)站http://www.flysnow.org/,第一時(shí)間看后...
摘要:覺(jué)得好的話,順手分享到朋友圈吧,感謝支持。抓住時(shí)代的趨勢(shì)在上篇文章中,也就是那個(gè)跨維度的打擊,是可以直接秒殺的中,提到這個(gè)時(shí)代的問(wèn)題,這次針對(duì)語(yǔ)言的前景分析,其實(shí)我也想講一下時(shí)代的問(wèn)題。目前語(yǔ)言就處于這樣一個(gè)不錯(cuò)的時(shí)代中。 本文為原創(chuàng)文章,轉(zhuǎn)載注明出處,asdfasdfasdf 歡迎掃碼關(guān)注公眾號(hào)flysnow_org或者網(wǎng)站http://www.flysnow.org/,第一時(shí)間看后...
閱讀 1391·2021-10-11 10:57
閱讀 2106·2021-09-02 15:15
閱讀 1713·2019-08-30 15:56
閱讀 1262·2019-08-30 15:55
閱讀 1217·2019-08-30 15:44
閱讀 1038·2019-08-29 12:20
閱讀 1414·2019-08-29 11:12
閱讀 1130·2019-08-28 18:29