go 方法接受者 是指標型別和非指標型別的 區別
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 runningn", 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 runningn", 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,不瞭解指標有啥用。 用到這裡明白了一點點。
©著作權歸作者所有:來自51CTO部落格作者295631788的原創作品,如需轉載,請註明出處,否則將追究法律責任
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2249/viewspace-2819531/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Go: 指標方法與值方法<->指標型別與值型別Go指標型別
- golang中 值型別,指標,引用的區別Golang型別指標
- c指標型別的作用指標型別
- 指標常量和常量指標的區別指標
- sizeof和strlen計算陣列型別和指標型別字串陣列型別指標字串
- 指標和引用的區別指標
- 型別的本質:對變數、型別、指標的理解型別變數指標
- 常見指標型別入門指標型別
- golang 指標型別引起的神奇 bugGolang指標型別
- 智慧指標和普通指標的區別指標
- 【C++系列】指標物件和物件指標的區別C++指標物件
- Unreal 各種指標型別是怎麼回事Unreal指標型別
- 認真一點學 Go:14. 指標型別Go指標型別
- All I know about A/B Test (1) : 均值型指標與比值(率)型指標的計算區別指標
- 第十五章:指標型別指標型別
- 深入解析Go非型別安全指標:技術全解與最佳實踐Go型別指標
- Go語言高階資料型別之指標篇Go資料型別指標
- Golang 學習——陣列指標和指標陣列的區別Golang陣列指標
- Golang研學:在用好Golang指標型別Golang指標型別
- 第 10 節:複合型別-5. 指標 -- 指標與指標變數 -8. 多級指標型別指標變數
- C/C++引用和指標的聯絡和區別C++指標
- 讀讀objc原始碼(二):weak型別指標的實現OBJ原始碼型別指標
- js基本型別和引用型別區別JS型別
- c#中值型別和引用型別的區別C#型別
- GraphQL —— 標量型別型別
- 【部落格1】c++測試this指標的傳入及型別C++指標型別
- C++編譯器認為的指標型別(靜態聯編)C++編譯指標型別
- Rust 中的Box指標使遞迴型別成為可能 - Knoldus BlogsRust指標遞迴型別
- 值型別與引用型別的區別型別
- 從賦值看基本型別和引用型別的區別賦值型別
- 使用 JSDoc 標註型別JS型別
- BOOL,int,float,指標型別的變數a 與“零”的比較語句指標型別變數
- 區別值型別資料和引用型別資料型別
- rust trait 關聯型別和泛型的區別RustAI型別泛型
- java基本型別和包裝型別的“==”和equals()方法Java型別
- 2020超休閒遊戲及其他型別遊戲的資料指標遊戲型別指標
- Golang的值型別和引用型別的範圍、儲存區域、區別Golang型別
- 2020-12-6(從反彙編理解指標和引用的區別)指標