go基礎學習筆記

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

呃,最近在學習go語言,因為我是從java轉過來的,有好多不習慣

 

  1. go函數傳回型別參考型別和實值型別

 go函數的傳回值可以為參考型別和實值型別,參考型別就是直接返回記憶體位址實值型別是變數的副本,所以大多數情況下是返回記憶體位址比較節省空間的

package mainimport ("fmt")func getVar() string {var name = "wtsoftware"fmt.Println("函數內的變數記憶體位址:", &name)return name}func getVarAdd() *string {var name = "wtsoftware"fmt.Println("函數內nameAdr的變數記憶體位址:", &name)return &name}func main() {fmt.Println("Hello World!")name := getVar()nameAdr := getVarAdd()fmt.Println("函數外的變數記憶體位址:", &name)fmt.Println("函數外nameAdr的變數記憶體位址:", nameAdr)fmt.Println("metho 變數name:", name)}

執行當前函數以後的傳回值

Hello World!函數內的變數記憶體位址: 0xc4200741e0函數內nameAdr的變數記憶體位址: 0xc420074200函數外的變數記憶體位址: 0xc4200741d0函數外nameAdr的變數記憶體位址: 0xc420074200metho 變數name: wtsoftware成功: 進程結束代碼 0.

可以看到 如果直接返回變數,則在函數內部直接返回了一個變數的副本,記憶體位址是不一樣 的。而返回指標類型的nameAdr記憶體位址在函數內部和函數外部擷取的地方都是一個記憶體位址

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.