寫下,自己在用golang開發中,用到的東西,有啥寫啥。
今個就寫下golang中的控制語句 if else、for、switch、goto,這幾個方面。
if 判斷對比
package mainimport "fmt"
func main()else
}
for 迴圈
這裡可以直接賦值
for i, j := 1, 10; i < j; i,j=i+1,j+1
完整的例子
package mainimport "fmt"
func main()else
stra:="111"
for i:=0; i< len(stra); i++
}
如果想實現死迴圈,很簡單,直接
for
這裡在看看switch的用法,學過語言的人都知道的。
package mainimport "fmt"
func main() else
stra:="111"
for i:=0; i< len(stra); i++
//這裡是switch
ch:="unix"
var cl string
switch ch
fmt.println(cl)
}
對於判斷是可以寫更複雜的
用if實現:
kk := 0用switch實現bb := 9
if 0 <= kk && bb <= 9
oo := 11switch
還有乙個goto,是個在自定義標籤中跳轉用的
func good()
陣列其實用的不多,這裡就一筆帶過,貌似更多的人在用切片slices
var a [5]intfmt.println("emp:", a)
a[4] = 100
fmt.println("set:", a)
fmt.println("get:", a[4])
fmt.println("len:", len(a))
slice是乙個指標而不是值。
slice就是「動態的陣列」,傳值的時候他也是拷貝賦值,只是他拷貝的是記憶體位址,是傳遞指標的。slice總是指向乙個底層的array,slice宣告也像array一樣,只是不需要長度。
切片中有兩個概念:一是len長度,二是cap容量,長度是指已經被賦過值的最大下標+1,可通過內建函式len()獲得。容量是指切片目前可容納的最多元素個數,可通過內建函式cap()獲得。切片是引用型別,因此在當傳遞切片時將引用同一指標,修改值將會影響其他的物件。
a := ints1 := a[2:5]
s2 := a[1:3]
fmt.println(s1, s2)
s1[0] = 9
fmt.println(s1, s2)
fmt.println(s2)
aa := string
fmt.println(aa)
map結構也經常常用,它和python中的dict 幾乎一模一樣,是乙個key-value的hash結構。key可以是除了func型別,array,slice,map型別之外的型別。
它的使用也是非常簡單
m:=map[string]string{}
m["key1"] = "val1"
map結構和slice是一樣的,是乙個指標。賦值的時候是將指標複製給新的變數
map的增刪改查操作是這樣的:
package mainimport(
"fmt"
)func main()
fmt.println(m)
m["key2"] = "val2"
fmt.println(m)
p := m["key1"]
fmt.println(p)
delete(m, "key1")
fmt.println(m)
}
今天就這樣了,有時間再寫
在golang程式設計中總結的基礎語法及常見的問題
寫下,自己在用golang開發中,用到的東西,有啥寫啥。今個就寫下golang中的控制語句 if else for switch goto,這幾個方面。if 判斷對比 package main import fmt func main else for 迴圈 這裡可以直接賦值 for i,j 1,1...
在golang程式設計中總結的基礎語法及常見的問題
寫下,自己在用golang開發中,用到的東西,有啥寫啥。今個就寫下golang中的控制語句 if else for switch goto,這幾個方面。if 判斷對比 package main import fmt func main else for 迴圈 這裡可以直接賦值 for i,j 1,1...
Golang基礎程式設計 archive zip包
統一使用路徑符 包含 替換為 func tolinux basepath string string引數 1 壓縮檔案 目錄 路徑 名 引數2 往 寫,本地壓縮傳檔案變數,壓縮後將流傳到其它電腦主機使用傳入bytes.buffer 即包含io.writer介面的結構變數都可 func zip fp ...