是否可以創建一個方法片或一個指向片的指針並將它們存儲在結構中的字段中?轉:結構中的一些方法和方法
下面是問題的一個例子:
package main
import (
"fmt"
)
type Foo struct {
fooFunc func() /// Problem here
name string
age int
}
type Bar struct {
barFunc []func() /// Problem here.
salary int
debt int
}
func main() {
fooObject := Foo{name: "micheal",
fooFunc: testFunc}
fooObject.fooFunc()
fooObject = Foo{name: "lisa",
age : 22,
fooFunc: testFunc2}
fooObject.fooFunc()
barFuncList := make([]func(), 2,2)
barFuncList[0] = barSalary
barFuncList[1] = barDebt
barObject := Bar{name: fooObject.name,
salary: 45000,
debt: 200,
barFunc: barFuncList)
for i := 0; i < len(barObject.barFunc); i++{ // This is what I really want to do
barObject.barFunc[i]
}
}
func (bar *Foo) testfunc() {
fmt.Println(bar.name)
}
func (bar *Foo) testfunc2() {
fmt.Println("My name is ", bar.name , " and my age is " , bar.age)
}
func (foo *Bar) barSalary() {
fmt.Println(" My salary is " , foo.salary)
}
func (foo *Bar) barDebt() {
fmt.Println(" My salary is " , foo.debt)
}
有沒有辦法爲對象的方法附加在其結構的領域?
是否有可能將對象的方法的一部分放在其結構的字段中?
「動態更新通過網絡與這些對象相關聯的方法,」誰在上帝的綠色地球想保持這種代碼?如果您需要動態對象,請使用動態語言。 –
在這種情況下維護不是問題。這個問題類似於[this](http://stackoverflow.com/questions/16797191/how-do-i-create-an-array-of-method-pointers-in-c),除了數組/片指針應該是結構體的一個字段。 –