Go語言的學習之旅 五

2022-06-29 17:51:10 字數 2332 閱讀 2430

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) int 

return 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...