Go的學習旅程3 物件導向

2021-08-20 05:02:31 字數 2007 閱讀 1776

在go中,是沒有類class的定義的,但是類似於class的是type

package main  

import (

"fmt"

)

//定義乙個類

type person struct

//建構函式

func con(name string, age, tel int) *person

}

//方法

func (aaa person) fanfa()

//修改person中的name,但不就該原資料

func (aaa person) update_name(name string) person

//修改person中的name,也修改原資料

func (aaa *person) update(name string) person

func main()

//例項化類3

c := person

fmt.println(a, b, c)

//呼叫類中的方法

c.fanfa()

//修改現資料

fmt.println("這是現在的name:", c.update_name("狗兒"))

//修改原資料

c.update("二比")

fmt.println("這是原來的name:", c)

}

結果展示:

2.1包的邏輯關係圖

2.2利用entry.go呼叫tree包,實現對tree包下,node.go和node1.go的呼叫

node.go

package tree

//定義乙個類

type person struct

//修改person中的name,但不就該原資料

func (aaa person) update_name(name string) person

//修改person中的name,也修改原資料

func (aaa *person) update(name string) person

node1.go

package tree

import "fmt"

//建構函式

func con(name string, age, tel int) *person

}//方法

func (aaa person) fanfa()

entry.go

package main

import (

"../tree"

"fmt"

)func main()

//例項化類3

c := tree.person

fmt.println(a, b, c)

//呼叫類中的方法

c.fanfa()

//修改現資料

fmt.println("這是現在的name:", c.update_name("狗兒"))

//修改原資料

c.update("二比")

fmt.println("這是原來的name:", c)

}

通過執行entry.go實現呼叫tree,效果如下:

Go的學習旅程4 面向介面

因為go中沒有class,只有結構體和方法,所以不存在class的繼承與多型,但是我們可以通過inte ce來實現類似class的繼承 1.1專案位置關係圖 1.2各個檔案中的 queue.go package queue import fmt strconv 這裡有兩個方法體 type queue...

Go基礎學習 物件導向

作為一門物件導向的語言,必然少不了介面,go的介面叫做非侵入式,雖然不存在繼承的語法,但是有繼承的概念。如下,乙個connector介面,包含乙個connect 方法,乙個usb介面,包含了connector介面和乙個name 方法,然後兩個類phoneconnector和tvconnector分別...

go 物件導向

在前面博文我們有記錄函式與struct型別的使用,那你是否有想過把函式當做struct字段一樣來處理呢?接下來,將記錄一下函式的另一種形態,帶有接收者的函式,我們稱之為method,即方法 在物件導向程式設計中,乙個物件其實也就是乙個簡單的值或者乙個變數,在這個物件中會包含一些函式,這種帶有接收者的...