go語(yǔ)言中不可以尋址的值有哪些

不可以尋址,指的是不能通過(guò)&獲得其地址。 

創(chuàng)新互聯(lián)建站是一家專業(yè)提供海城企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)H5場(chǎng)景定制、小程序制作等業(yè)務(wù)。10年已為海城眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

golang中不能尋址的可以總結(jié)為:不可變的,臨時(shí)結(jié)果和不安全的。只要符合其中任何一個(gè)條件,它就是不可以尋址的。

具體為:

package main    
type Named interface {    
	// Name 用于獲取名字。    
	Name() string    
}    
type Dog struct {    
	name string    
}    
func (dog *Dog) SetName(name string) {    
	dog.name = name    
}    
func (dog Dog) Name() string {    
	return dog.name    
}    
func main() {    
	// 示例1。    
	const num = 123    
	//_ = &num // 常量不可尋址。    
	//_ = &(123) // 基本類型值的字面量不可尋址。    
	var str = "abc"    
	_ = str    
	//_ = &(str[0]) // 對(duì)字符串變量的索引結(jié)果值不可尋址。    
	//_ = &(str[0:2]) // 對(duì)字符串變量的切片結(jié)果值不可尋址。    
	str2 := str[0]    
	_ = &str2 // 但這樣的尋址就是合法的。    
	//_ = &(123 + 456) // 算術(shù)操作的結(jié)果值不可尋址。    
	num2 := 456    
	_ = num2    
	//_ = &(num + num2) // 算術(shù)操作的結(jié)果值不可尋址。    
	//_ = &([3]int{1, 2, 3}[0]) // 對(duì)數(shù)組字面量的索引結(jié)果值不可尋址。    
	//_ = &([3]int{1, 2, 3}[0:2]) // 對(duì)數(shù)組字面量的切片結(jié)果值不可尋址。    
	_ = &([]int{1, 2, 3}[0]) // 對(duì)切片字面量的索引結(jié)果值卻是可尋址的。    
	//_ = &([]int{1, 2, 3}[0:2]) // 對(duì)切片字面量的切片結(jié)果值不可尋址。    
	//_ = &(map[int]string{1: "a"}[0]) // 對(duì)字典字面量的索引結(jié)果值不可尋址。    
	var map1 = map[int]string{1: "a", 2: "b", 3: "c"}    
	_ = map1    
	//_ = &(map1[2]) // 對(duì)字典變量的索引結(jié)果值不可尋址。    
	//_ = &(func(x, y int) int {    
	//	return x + y    
	//}) // 字面量代表的函數(shù)不可尋址。    
	//_ = &(fmt.Sprintf) // 標(biāo)識(shí)符代表的函數(shù)不可尋址。    
	//_ = &(fmt.Sprintln("abc")) // 對(duì)函數(shù)的調(diào)用結(jié)果值不可尋址。    
	dog := Dog{"little pig"}    
	_ = dog    
	//_ = &(dog.Name) // 標(biāo)識(shí)符代表的函數(shù)不可尋址。    
	//_ = &(dog.Name()) // 對(duì)方法的調(diào)用結(jié)果值不可尋址。    
	//_ = &(Dog{"little pig"}.name) // 結(jié)構(gòu)體字面量的字段不可尋址。    
	//_ = &(interface{}(dog)) // 類型轉(zhuǎn)換表達(dá)式的結(jié)果值不可尋址。    
	dogI := interface{}(dog)    
	_ = dogI    
	//_ = &(dogI.(Named)) // 類型斷言表達(dá)式的結(jié)果值不可尋址。    
	named := dogI.(Named)    
	_ = named    
	//_ = &(named.(Dog)) // 類型斷言表達(dá)式的結(jié)果值不可尋址。    
	var chan1 = make(chan int, 1)    
	chan1 <- 1    
	//_ = &(<-chan1) // 接收表達(dá)式的結(jié)果值不可尋址。    
}

以上就是Golang中哪些值是不可以尋址的的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!

網(wǎng)站名稱:go語(yǔ)言中不可以尋址的值有哪些
鏈接分享:http://www.muchs.cn/article40/jsodeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站定制網(wǎng)站、動(dòng)態(tài)網(wǎng)站、服務(wù)器托管、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站維護(hù)

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)