1.3 變數的初始化
2. 常量
4. 條件
5. switch
go語言的基本型別有:
go語言的引用型別:
結構型別
在go中不允許進行隱式型別轉換,別名型別也不行
go 語言的變數宣告的標準格式為:
var 變數名 變數型別
var 變數名
var a int
var b
變數宣告以關鍵字 var 開頭,後置變數型別,行尾無須分號。
覺得每行都用 var 宣告變數比較煩瑣?沒關係,還有一種為懶人提供的定義變數的方法:
var
( a int
b string
c []float32
d func()
bool
e struct
)
名字 := 表示式
a, s :=1,
"abc"
package main
import
"fmt"
func
main()
var 變數名 型別 = 表示式
var hp int
=100
在標準格式的基礎上,將 int 省略後,編譯器會嘗試根據等號右邊的表示式推導 hp 變數的型別。
var hp =
100
var 的變數宣告還有一種更為精簡的寫法,例如:
hp :=
100
var a int
=100
var b int
=200
b, a = a, b
fmt.
println
(a, b)
多重賦值時,變數的左值和右值按從左到右的順序賦值。
多重賦值在 go 語言的錯誤處理和函式返回值中會大量地使用。
package main
import
"fmt"
import
"math"
const 用於宣告乙個常量。
const s string
="constant"
func
main()
func main (
)# 3. 迴圈
## 3.1 普通迴圈
```go
package main
import
"fmt"
func
main()
經典的初始化/條件/後續形式 for 迴圈。
for j :=
7; j <=
9; j++
不帶條件的 for 迴圈將一直執行,直到在迴圈體內使用了 break 或者 return 來跳出迴圈。
for}
需要強調的是,range 建立了每個元素的副本,而不是直接返回對該元素的引用。因此直接改變value是沒用用的。
arr :=[3
]int
for index, value :=
range arr
對陣列使用range會自動迭代,並在每次迭代返回兩個值,第乙個是索引,第二個是值,但是在go語言中,只要定義的變數就必須使用,而且我們常常用不到索引,那麼怎麼辦呢?
用單下劃線來替代索引,這樣就省略了變數的定義。
for
_, v :=
range arr
package main
import
"fmt"
func
main()
else
你可以不要 else 只用 if 語句。
if8%
4==0
在條件語句之前可以有乙個語句;任何在這裡宣告的變數都可以在所有的條件分支中使用。
if num :=
9; num <
0else
if num <
10else
}
1
package main
2import
"fmt"
3import
"time"
4func
main()
17 在乙個 case 語句中,你可以使用逗號來分隔多個表示式。在這個例子中,我們很好的使用了可選的default 分支。
19switch time.
now().
weekday()
25 不帶表示式的 switch 是實現 if
/else 邏輯的另一種方式。這裡展示了 case 表示式是如何使用非常量的。
27 t := time.
now()28
switch
34}
04 自己的golang學習及速查筆記 函式
可以有多個返回值 所有引數都是值傳遞 slice map channel 函式可以作為變數的值 函式式程式設計 js 函式可以作為引數和返回值 小例子 把乙個無引數,無返回值的函式進行包裝,包裝成計時函式,可以列印消耗的時間 import fmt time func sleepsecond 包裝器 ...
Golang實現自己的RPC框架
rpc session.go package rpc import encoding binary io net 編寫資料會話中讀寫 會話連線的結構體 type session struct 建立新連線 func newsession conn net.conn session 向連線中寫資料 fu...
android actionbar的學習筆記
我主要學習了actionbar的 1.如何顯示和關閉 2.如何在actionbar中顯示自定義的view 3.如何顯示隱藏的和直接顯示的menu item 1.如何顯示 2.如何得到actionbar?actionbar有兩種,一種是android系統自帶的,一種是support包中的actionb...