func main() //陣列printslice(s)
fmt.println(s[0:2]) //使用切片方式
fmt.println(s[:2])
fmt.println(s[0:])
fmt.println(s[:])
s2 := make(int, 3, 5) //通過make(int, len, cap)來定義切片
printslice(s2)
var s3 int
if s3 == nil
printslice(s3)
var s4 int
printslice(s4)
printslice(s4)
printslice(s4)
s5 := make(int, len(s4), cap(s4) * 2) //建立s5切片,容量是其兩倍
printslice(s5)
copy(s5, s4) //將s4的內容拷貝到s5中
printslice(s5)
printslice(s5)
//s5[13] = 14 //使用下標的情況,需要小於長度
printslice(s5)//可以看到cap容量擴容都是兩倍擴容
}func printslice(x int)
func main()for num := range arr
for i, num := range arr
for _, num := range arr
for k, v := range m
s := "golang"
for i,c := range s
}
var m map[string]string //宣告map, map[key型別]value型別m2 := make(map[string]string) //用make宣告map
if m == nil
m2["abc"] = "abc" //存入值
fmt.println(m2["abc"]) //取出值
m2["啊"] = "啊啊啊"
for k, v := range m2
val, ok := m2["abc"] //兩個返回值,第乙個是值,第二個是狀態
fmt.println("val,ok:", val, ok)
fmt.println(m2)
delete(m2, "abc")//刪除 key為abc
fmt.println(m2)
//鍊錶
type linkmap struct
alink := linkmap
blink := linkmap
alink.next = &blink //只能儲存其位址
fmt.println(alink,alink.next)
//struct{}無是乙個無元素的結構體型別,通常在沒有資訊儲存時使用。優點是大小為0,不需要記憶體來儲存struct {}型別的值。
//struct {} {}是乙個復合字面量,它構造了乙個struct {}型別的值,該值也是空。
var set map[string]struct{} //這個就形成set,因為struct{}{}是相等的
// add some values to the set:
set["red"] = struct{}{}
set["blue"] = struct{}{}
// check if a value is in the map:
_, ok := set["red"]
fmt.println("is red in the map?", ok) //結果是存在
_, ok = set["green"]
fmt.println("is green in the map?", ok)//結果不存在
func factorial(n uint32) (res uint32)return 1
}func main()
func fibonacci(n int) intreturn fibonacci(n-1) + fibonacci(n-2)
}func main()
}
func main()
切片(slice)、範圍(range)、集合map、遞迴函式基本上跟其他大部分語言都差不多。切片沒有步長(類似python的array[::-1]就倒序),集合map返回兩個值,乙個狀態值。型別轉換必須顯式.
Go語言的學習之旅 三
const a int 123 常量定義const,顯式 a 456 修改常量值,會報錯 cannot assign to a,無法賦值 const b 23 隱式 const c,d 1,s 多重賦值 const e,f int 6,7 多重賦值,同型別 const 常量列舉 g 1 h asb ...
我的Go語言學習之旅三 Go語言中的for迴圈
這個可是為難我了,我一直是走在web前的程式設計師,各種迴圈用起來得心應手,突然間發現到了go這裡居然行不通了,查閱後才發現,原來go的for是這樣寫的。for i 0 i 10 i 很有才的一種寫法,我用起來感覺的確沒有 帶有圓括號舒服。接下來,看更多關於 for 的例項吧go 的 for 迴圈有...
《go語言程式設計》學習(五)
一,併發 package main import bufio fmt math os const result polar radius 02f 02f cartesian x 02f y 02f n var prompt enter a radius and an angle in degrees...