日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Go的*

發布時間:2024/9/19 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Go的* 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.值傳遞與引用傳遞形象化理解:

引用傳值:相當于把燒餅串成一串,然后是有底座的,這個底座就相當于地址,這個地址對應的燒餅就相當于變量,這個地址對應的所有的變量都是一樣的;

值傳遞:各個燒餅都是平放的,新的燒餅只是復制了之前的燒餅,之后被吃了,或者被煮了,與最開始的燒餅無關了

傳地址進函數,函數內外的變量一起變化

傳值進去,函數內的變化不影響函數外

2.分析兩者:

2.1采用引用傳值的時候:

函數內部用&:

我們希望這個地址對應的變量會隨著變化 所以使用&? 一般是函數內部,因為函數內部就是要變量變化的嘛。

函數內對指定變量進行賦值(這里的賦值其實是地址對應的變量的賦值,所以用&)

與return返回值的時候使用&(這里返回也是返回&{變量}))

函數聲明的時候*:

因為是最終的結果? 所以直接用*? 不用再在乎是否變化? 一般是函數的入參與返回參數

2.2采用值傳遞的時候:

賦值用值傳遞 返回值的時候也用值傳遞? 過程中也用值傳遞就可以? 都沒有符號??

3.屬性加*的理解

一般屬性

因為int對應iptr,因為int是一個地址,所以iptr也是一地址;
我們傳入的參數就是以地址&i;
函數里面:*iptr=*&i=0 ?
我們對地址(iptr &i)進行賦值的,所以變量(*iptr i)都會發生變化;
這是從根上地址發生的變化;
所以我們對屬性加*的目的就很清楚了,
讓函數內外的變量一起變化。

屬性加*屬性的話? 調用的地方必定是&變量

集合屬性結構體

結構體加&與不加&進行賦值修改操作沒有任何影響。

package mainimport "fmt"type person struct {name stringage int }var a intfunc main() {// 一般展示// 結構體加&賦值 &{Ann 40}// 結構體不加賦值 {Ann 40}fmt.Println("結構體加&賦值",&person{name: "Ann", age: 40})fmt.Println("結構體不加賦值",person{name: "Ann", age: 40})// 加與不加獲取屬性值// 不加&進行獲取內部屬性值 50// 加&進行獲取內部屬性值 50a := person{name: "Sean", age: 50}b := &person{name: "Sean", age: 50}fmt.Println("不加&進行獲取內部屬性值",a.age)fmt.Println("加&進行獲取內部屬性值",b.age)// 加與不加修改屬性值// 不加&進行修改內部屬性值 51// 加&進行修改內部屬性值 51a.age = 51b.age = 51fmt.Println("不加&進行修改內部屬性值",a.age)fmt.Println("加&進行修改內部屬性值",b.age) }

3.分析代碼

3.1底層使用了引用傳值,上層就會用引用傳值

3.2底層沒有用就不會使用引用傳值

3.3函數調用

4.實際代碼

package mainimport("fmt""reflect" )type b struct{c intd string }type bb struct{ff bdd string }type bbb struct{// 這句話是在表明// c是一個引用傳值// b對應地址c *bdd string }func main(){a:=1;// &{變量}=地址 給地址賦值哈 // *{地址}=值 取出地址值哈fmt.Println(&a); // 0xc042052058fmt.Println(*&a); // 1// fmt.Println(*a);//報錯 錯誤的指向 所以說a必須是一個地址 在這個例子中 a不是地址 所以報錯// 這個是結構體的簡單引用傳值與值傳遞// &{變量}-結構體的賦值先要聲明哪個類型結構體g:=&b{c:1,d:"gggg"};fmt.Println(g);// &{1 gggg}gg:=b{c:1,d:"gggg"};fmt.Println(gg);// {1 gggg}// 這個是結構體嵌套結構體進行值傳遞gggg:=bb{ff:b{c:1,d:"gggg"},dd:"gggg"}fmt.Println(gggg);// {{1 gggg} gggg}// 這個是結構體嵌套進行引用傳值 // 因為此時在bbb中b是一個地址&{}// c后面是結構體進行賦值 是對// 此處的b只是針對結構體b的 // *b 所以b為地址 所以傳遞地址即&bggggg:=bbb{c:&b{c:1,d:"gggg"},dd:"gggg"}fmt.Println(reflect.TypeOf(ggggg.c));//*main.bfmt.Println(ggggg.c); //&{1 gggg}fmt.Println(ggggg); // {0xc04204c420 gggg}// 這個是結構體嵌套進行引用傳值 // 這樣是錯誤的哈,在bbb里面b是引用傳值 直接用值傳遞會報錯// cannot use b literal (type b) as type *b in field value// 不能在字段值中使用b文字(類型b)作為類型*b// 就是說我們用的是b類型 在結構體聲明的時候是*b 所以錯誤// gggggg:=bbb{c:b{c:1,d:"gggg"},dd:"gggg"}// fmt.Println(gggggg); //錯誤// invalid indirect of b literal (type b) b字母無法指向b類)// ggggggg:=bbb{c:*b{c:1,d:"gggg"},dd:"gggg"}// fmt.Println(ggggggg); //錯誤// 結構體的定義要么是值傳遞(方式一) 要么是引用傳遞使用* 對類型定義(方式二)// 結構體的賦值要么是什么值傳遞(方式一) 要么引用傳遞-&類型名字{id:1,name:"aa"}(方式二)// 方式一對應方式一;方式二對應方式二 }// 0xc042052058 // 1 // &{1 gggg} // {1 gggg} // {{1 gggg} gggg} // *main.b // &{1 gggg} // {0xc04204c420 gggg}

5.對應

  • // 結構體的定義要么是值傳遞(方式一) 要么是引用傳遞使用* 對類型定義(方式二)

  • // 結構體的賦值要么是什么值傳遞(方式一) 要么引用傳遞-&類型名字{id:1,name:"aa"}(方式二)

  • // 方式一對應方式一;方式二對應方式二

  • 總結

    以上是生活随笔為你收集整理的Go的*的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美另类性 | 国产成人精品av在线观 | 日本xxxx高潮少妇 | 亚洲精品国产欧美在线观看 | 亚洲二区精品 | 午夜偷拍福利视频 | 久99久视频 | 韩国美女被c | 日韩av网站在线观看 | 无码gogo大胆啪啪艺术 | 奇米视频在线观看 | 无码人妻丰满熟妇区96 | 亚洲最新中文字幕 | 欧美精品久久久久性色 | 日本一区二区三区在线免费观看 | 人操人视频 | 国产区在线观看 | 韩国无码一区二区三区精品 | 亚洲精品无码久久久 | 日韩精品一区二区三区电影 | 精品深夜av无码一区二区老年 | 人人九九精品 | 午夜成人在线视频 | 少妇特殊按摩高潮惨叫无码 | 综合激情视频 | 精品一区二区三区久久久 | 无套内谢少妇露脸 | 亚洲av成人精品日韩在线播放 | 久久久国产精品一区 | 欧美影视一区 | 欧美性一区二区三区 | 欧美成人亚洲 | 天天爽影院| 亚洲男男网站 | 91片黄在线观 | 少妇裸体淫交视频免费看高清 | 日本美女动态 | 怡红院一区二区 | 欧美| 中文字幕观看视频 | 国产免费网| 欧美色视频在线观看 | 免费一级suv好看的国产网站 | 最新自拍偷拍 | 国产美女无遮挡免费 | 亚洲熟妇无码一区二区三区导航 | 福利片一区二区 | 日韩精品一区二区三区在线观看 | 亚洲精品一区二区三区区别 | 精品久久久蜜桃 | 婷婷777 | 91操视频 | 奇米影视亚洲春色 | 日韩aⅴ视频 | 久久亚 | 中文字幕人乱码中文字 | 亚洲中文字幕97久久精品少妇 | 欧美成性色 | 亚洲一级特黄毛片 | 少妇精品偷拍高潮白浆 | 99国产精品久久久久99打野战 | 亚洲精品天堂网 | 人妻巨大乳一二三区 | 91精品久久久久久综合五月天 | 婷婷成人在线 | 国产一区二区三区免费观看视频 | 日韩黄色片网站 | 久久久久久久久久久久久女国产乱 | www.99re7.com| 香蕉久久夜色精品 | 日本在线天堂 | 久久精品在线观看 | 麻豆蜜桃在线观看 | 自拍偷拍日韩精品 | 国 产 黄 色 大 片 | 国产五区 | 国产成人无码精品久久久久久 | 精品国产一级 | 久久综合国产精品 | 91视频青青草 | 午夜剧场91 | 在线观看中文字幕 | 欧美肉大捧一进一出免费视频 | 一区二区三区小说 | 麻豆一区二区三区四区 | 欧美另类色 | 久久久久久av无码免费看大片 | 成人黄色片免费看 | 东北少妇高潮抽搐 | 特级淫片裸体免费看 | 波多野结衣一区二区三区在线 | 美女裸体跪姿扒开屁股无内裤 | 精品久久一区二区三区 | 中文字幕日韩精品一区 | 刘亦菲毛片 | 欧美性综合 | 成人在线你懂的 | 国产一区二区电影 | 成人黄色三级 |