golang學習之第二天

2021-10-07 17:49:57 字數 4729 閱讀 2610

var var_name *var_type

str :=

new(

string

)//列

var ip *

int

var a int=20

/* 宣告實際變數 */

var ip *

int/* 宣告指標變數 */

/* 使用指標訪問值 */

fmt.

printf

("*ip 變數的值: %d\n"

,*ip )

var  ptr *

intvar ptr *

int;

fmt.

println

(ptr)

fmt.

printf

("ptr 的值為 : %x\n"

, ptr )

//輸出:

//輸出: ptr 的值為 : 0

package main

import

"fmt"

const max int=3

func

main()

var i int

var ptr [max]

*int

;for i =

0; i < max; i++

for i =

0; i < max; i++

}

package main

import

"fmt"

func

main()

//結果

/* 值 5

ptr指標指向位址對應的值 5

pts指標指向位址對應的值: 5

pto最終指向的位址對應的值(a) 5

pt3指向的指標(pto)所指向的指標的(ptr)位址 0xc00000e028

pt3指向的指標(pto)所指向的指標(ptr)所指向的位址(a): 0xc0000140d8

pt3最終指向的位址對應的值(a) 5

*/

指標是指向值的位址

指向指標的指標是指向指標的位址

package main

import

"fmt"

type book struct

func

main()

// 建立乙個新的結構體

func

createbook

() book

var book book

//成員設定

book.title =

"go"

// 忽略的字段為 0 或 空

return book

}

var slice1 [

]type

=make([

]type

,len

, capacity)

//len為切片的初始長度。

var slice2 =

int//slice2 後面不能跟型別中什麼都不寫

var slice3 = slice2[0:

2]//將slice2中從下標s0到1下的元素擷取出來建立為乙個新的切片,不設定分別預設0和最後乙個

len

(slice)

//獲取切片的長度

cap(slice)

//獲取切片的容量

slice =

(sliece, value)

//向切片中添追加值,可以新增切片

copy

(slice1,slice2)

//拷貝 slice2 的內容到 slices1

/* 宣告變數,預設 map 是 nil */

var map_variable map

[key_data_type]value_data_type

/* 使用 make 函式 */

map_variable :=

make

(map

[key_data_type]value_data_type)

package main

import

"fmt"

func

main()

fmt.

println

("原始地圖"

)/* 列印地圖 */

for country :=

range countrycapitalmap

/*刪除元素*/

delete

(countrycapitalmap,

"france"

) fmt.

println

("法國條目被刪除"

) fmt.

println

("刪除元素後地圖"

)/*列印地圖*/

for country :=

range countrycapitalmap

}

package main

import

("fmt"

"sync"

)func

main()

)bool

)}

var list_nam list.list//第一種定義方式

list_name := list.

new(

)//第二種定義方式

//均返回操作節點控制代碼

list.

insertafter

(v inte***ce

, mark * element)

//在 mark 點之後插入元素,mark 點由其他插入函式提供

list.

insertbefore

(v inte***ce

, mark * element)

//在 mark 點之前插入元素,mark 點由其他插入函式提供

list.

pushbacklist

(other *list)

//新增 other 列表元素到尾部

list.

pushfrontlist

(other *list)

//新增 other 列表元素到頭部

list.

remove

(element)

l := list.

new(

)// 尾部新增

l.pushback

("canon"

)// 頭部新增

l.pushfront(67

)for i := l.

front()

; i !=

nil; i = i.

next()

package main

import

"fmt"

type phone inte***ce

type nokiaphone struct

func

(nokiaphone nokiaphone)

call()

type iphone struct

func

(iphone iphone)

call()

func

main()

go

func_name

()

ch :=

make

(chan

int)

ch <- value
value <- ch
package main

import

"fmt"

func

sum(s [

]int

, c chan

int)

c <- sum // 把 sum 傳送到通道 c

}func

main()

c :=

make

(chan

int)

//建立通道

gosum

(s[:

len(s)/2

], c)

gosum

(s[len

(s)/2:

], c)

x, y :=

<-c,

<-c // 從通道 c 中接收

fmt.

println

(x, y, x+y)

}

通道緩衝區
ch :=

make

(chan

int,

100)

注意:如果通道不帶緩衝,傳送方會阻塞直到接收方從通道中接收了值。如果通道帶緩衝,傳送方則會阻塞直到傳送的值被拷貝到緩衝區內;如果緩衝區已滿,則意味著需要等待直到某個接收方獲取到乙個值。接收方在有值可以接收之前會一直阻塞。

學習第二天

linux系統的檔案型別及許可權的相關知識 1.普通檔案 l 連線檔案 d 資料夾 表示不同的檔案型別 2.檔案許可權 r 可讀 w 可寫 x 可執行 3.chmod 修改檔案許可權,修符號或者使用八進位制 linux的基礎命令 cd 切換目錄 ls 檢視內容 表示當前目錄 上一級目錄等 touch...

第二天學習

快捷鍵 功能ctrl alt t 啟動終端 print 全屏截圖 ctrl alt a 截圖alt tab 切換視窗 shift alt tab 反向切換視窗 super d 顯示桌面 super e 檔案管理器 super l 屏鎖介面 super up 最大化視窗 super down 恢復視窗...

學習第二天

製表符和換行符 換行符 n 的作用是是來游標跳到下乙個新行,輸入完一行內容後游標下移一行 而製表符 t 的作用是 跳格 即到自下乙個 製表位置 在系統中乙個 製表區 佔8列,相當於4個或8個空格符。正斜槓和反斜槓 正斜槓 是斜率是正數的斜槓,反斜槓 是斜率為負數的斜槓 這個世界上就只有microso...