值類型:
可以理解成基礎(chǔ)類型。int、float、bool、array、sturct等
引用類型:
可以理解成值類型上層的組裝。[]int、map[string]bool等
值傳遞:
值類型的變量,在方法中傳遞
會(huì)將變量完全復(fù)制一份(指針和值都復(fù)制一份)。在方法中操作的都是新復(fù)制的內(nèi)容,修改操作,不會(huì)影響原來的變量。
引用傳遞:
引用類型的變量,在方法中傳遞
因?yàn)橐妙愋褪且欢阎殿愋偷慕M合,在傳遞的時(shí)候會(huì)一半復(fù)制一般不復(fù)制(指針復(fù)制,指針指向的位置復(fù)制共用一個(gè))。
- 因?yàn)橹赶蛞粋€(gè)位置,所以單獨(dú)修改其中的內(nèi)容,原來的變量也會(huì)發(fā)生改變的;
- 但是添加導(dǎo)致擴(kuò)容,會(huì)讓指針指向不同位置,修改不會(huì)影響之前的變量