亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

go 方法接受者 是指針類型和非指針類型的 區別

發布時間:2020-07-18 11:00:56 來源:網絡 閱讀:1077 作者:295631788 欄目:編程語言

go 方法接受者 是指針類型和非指針類型的 區別

非指針類型

package main

import "fmt"

// 定義接口
type Car interface {
    GetName() string
    Run()
}

// 定義結構體
type Tesla struct {
    Name string
}

// 實現接口的GetName()方法
func (t Tesla) GetName() string {
    t.Name = "test"
    return t.Name
}

// 實現接口的Run()方法
func (t Tesla) Run() {
    fmt.Printf("%s is running\n", t.Name)
}

func main() {
    var c Car
    var t Tesla = Tesla{"Tesla Model S"}
    c = t  // 上面是用指針*Tesla實現了接口的方法,這里要傳地址
    fmt.Println(c.GetName())
    c.Run()
}
test
Tesla Model S is running

指針類型

package main

import "fmt"

// 定義接口
type Car interface {
    GetName() string
    Run()
}

// 定義結構體
type Tesla struct {
    Name string
}

// 實現接口的GetName()方法
func (t *Tesla) GetName() string {
    t.Name = "test"
    return t.Name
}

// 實現接口的Run()方法
func (t *Tesla) Run() {
    fmt.Printf("%s is running\n", t.Name)
}

func main() {
    var c Car
    var t Tesla = Tesla{"Tesla Model S"}
    c = &t  // 上面是用指針*Tesla實現了接口的方法,這里要傳地址
    fmt.Println(c.GetName())
    c.Run()
}
test
test is running

結論

傳遞指針 可以 修改 傳遞的結構體的值,在其他方法中也生效。
原來一直寫python,不了解指針有啥用。 用到這里明白了一點點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

博爱县| 江西省| 金山区| 大新县| 唐河县| 惠东县| 陵水| 略阳县| 郓城县| 墨脱县| 东山县| 井研县| 宁河县| 揭西县| 临桂县| 湘阴县| 黎平县| 高台县| 莎车县| 共和县| 龙里县| 永善县| 平远县| 太康县| 壶关县| 加查县| 大英县| 都昌县| 浑源县| 西宁市| 汶上县| 五指山市| 新密市| 托克逊县| 高密市| 康保县| 上犹县| 富民县| 邳州市| 合山市| 九龙城区|