golang中chan型別的位址

2021-10-12 19:39:02 字數 1650 閱讀 1145

chan型別本是就是指標, 因此直接列印即可, 不需要再取位址.

如果在取位址就是"指向指標的指標"(pointer to pointer) 即類似c/c++中的二級指標 , 如:int a; int *p = &a; int **pp = &p;其中pp就是二級指標

package main

import

"fmt"

func

main()

fmt.

println

("&c:"

,&c)

fmt.

println

("&n:"

,&n.ch)

fmt.

println

("c:"

, c)

fmt.

println

("n:"

, n.ch)

fmt.

println()

// 賦值

c = n.ch

fmt.

println

("&c:"

,&c)

fmt.

println

("&n:"

,&n.ch)

fmt.

println

("c:"

, c)

fmt.

println

("n:"

, n.ch)

fmt.

println()

// 往c中新增資料

gofunc()

()// 從c中可以獲取資料

e :=

<-c

fmt.

println

("v1:"

, e)

// 從n.ch中也可以獲取資料

d :=

<-n.ch

fmt.

println

("v2:"

, d)

fmt.

println()

fmt.

println

("&c:"

,&c)

fmt.

println

("&n:"

,&n.ch)

fmt.

println

("c:"

, c)

fmt.

println

("n:"

, n.ch)

}type node struct

輸出

&c: 0xc000102018

&n: 0xc000102020

c: 0xc00010c000

n: 0xc00010c060

&c: 0xc000102018

&n: 0xc000102020

c: 0xc00010c060

n: 0xc00010c060

v1: 1

v2: 2

&c: 0xc000102018

&n: 0xc000102020

c: 0xc00010c060

n: 0xc00010c060

golang的chan有趣用法

寫這個部落格的背景是我面試一家公司,這家公司的cto給我出了一道我認為挺有意思的題,題的大概是這樣的 抽象乙個柵欄 type barrier inte ce 建立柵欄物件 func newbarrier n int barrier 柵欄的實現類 type barrier struct 測試 func...

golang中的型別斷言

golang有型別轉換,型別斷言,型別切換 1.介面型別斷言 型別斷言就是將介面型別的值 x 裝換成型別 t 成功則返回 t 的例項。格式為 x.t 不安全,會造成panic,程式中斷 v x.t 不安全,會造成panic,程式中斷 v,ok x.t 推薦寫法型別斷言的必要條件就是x是介面型別,非介...

Golang中的基本型別

package main import strconv 變數的宣告 var v1 int var v2 string var v3 10 int 陣列 var v4 int 陣列切片 var v5 struct var v6 int 指標 var v7 map string int map,key為...