内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

GO語言method、interface、reflection、select

方法method

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了扶風(fēng)免費(fèi)建站歡迎大家使用!

-GO方法雖沒有class,依舊有method

-通過顯示說明receiver來實(shí)現(xiàn)與某個(gè)類型的組合

-只能為同一個(gè)包中的類型定義方法

-RECEIVER可以是類型的值或指針

-不存在方法重載

-可以使用值或指針來調(diào)用方法,編譯器會(huì)自動(dòng)完成轉(zhuǎn)換

-從某種意義上來說,方法是函數(shù)的語法糖,因?yàn)閞eceiver其實(shí)就是方法所接收的第一個(gè)參數(shù)

-如果外部結(jié)構(gòu)和嵌入結(jié)構(gòu)存在同名方法,則優(yōu)先調(diào)用外部結(jié)構(gòu)的方法

-類型別名不會(huì)擁有底層類型所附帶的方法

-方法可以調(diào)用結(jié)構(gòu)中的非公開字段

##method:

package main
import "fmt"
type A struct {
    Name string
}
type B struct {
    Name string
}
func main() {
    a := A{}
    a.Printa()
}
func (a A) Printa() {
    fmt.Println("A")
}

接口interface

-接口是一個(gè)或多個(gè)方法簽名的集合

反射reflection

并發(fā)concurrency

Channel

-Channel是goroutine溝通的橋梁,大都是阻塞同步的

-通過make創(chuàng)建,close關(guān)閉

-Channel是引用類型

package main

import "fmt"

import "time"

func main(){

c :=make(chan bool)

go func(){

fmt.Println("GO GO GO")

c <-true

}()

<-c

time.Sleep(2*time.Second)

}

-可以使用for range 來迭代不斷操作channel

package main

import "fmt"

//import "time"

func main(){

c :=make(chan bool)

go func(){

fmt.Println("GO GO GO")

c <-true

close(c)

}()

for v :=range c{

fmt.Println(v)

}

}

-可以設(shè)置單項(xiàng)或雙向通道

-可以設(shè)置緩存大小,在未被填滿前不會(huì)發(fā)生阻塞

package main

import "fmt"

import "runtime"

func main(){

runtime.GOMAXPROCS(runtime.NumCPU())

c :=make(chan bool,10)

for i :=0;i<10;i++{

go Go(c,i)

}

for i :=0;i<10;i++{

<-c

}

}

func Go(c chan bool,index int){

a :=1

for i :=0;i<100000000;i++{

a+=1

}

fmt.Println(index,a)

c<-true

}

等價(jià)///

package main

import "fmt"

import "runtime"

import "sync"

func main(){

runtime.GOMAXPROCS(runtime.NumCPU())

wg :=sync.WaitGroup{}

wg.Add(10)

for i :=0;i<10;i++{

go Go(&wg,i)

}

wg.Wait()

}

func Go(wg *sync.WaitGroup,index int){

a :=1

for i :=0;i<100000000;i++{

a+=1

}

fmt.Println(index,a)

wg.Done()

}

Select

-可處理一個(gè)或多個(gè)channel的發(fā)送與接收

-同時(shí)有多個(gè)可用的channel時(shí)按隨機(jī)順序處理

-可用空的select來阻塞main函數(shù)

-可設(shè)置超時(shí)

網(wǎng)站標(biāo)題:GO語言method、interface、reflection、select
標(biāo)題網(wǎng)址:http://www.rwnh.cn/article20/jeedco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、面包屑導(dǎo)航網(wǎng)站收錄、營銷型網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
邻水| 新安县| 金坛市| 文成县| 西吉县| 新泰市| 凌海市| 葵青区| 徐闻县| 万州区| 平山县| 镇原县| 准格尔旗| 甘德县| 钟山县| 积石山| 长沙县| 信阳市| 伽师县| 临朐县| 琼中| 井冈山市| 乡宁县| 乌苏市| 出国| 固原市| 永泰县| 新邵县| 衡阳县| 嵊泗县| 荔波县| 荔浦县| 新干县| 呼和浩特市| 和静县| 泰安市| 土默特右旗| 连山| 汉源县| 安仁县| 娄烦县|