簡體   English   中英

我的結構中可以有一個 function 嗎? 從 PHP class 轉換

[英]Can I have a function inside my struct? Converting from PHP class

我有一些 php 代碼,我正在嘗試遷移到 Golang 代碼。 就是這個:

PHP 中的代碼:

class AuditProcessor {
    public function __construct( BfsBlockChain $Bfs ) 
    {
        $this->bfs = $bfs;
    }

我知道這是一個 class,里面有一個 function。 我的問題是:在 Golang 中,我的結構中可以有一個 function 嗎? 或者我該如何替換代碼或格式化它?

可以有function 類型的字段,也可以有方法 對於可以分配任何 function 值(具有匹配簽名)的字段,方法是不可更改的。

例如:

type Foo struct {
    Bar func() // This is a regular field of function type
}

func (f Foo) Baz() { // This is a method of Foo
    fmt.Println("I'm Baz()")
}

測試它:

func main() {
    f := Foo{
        Bar: func() { fmt.Println("I'm Bar()") },
    }

    f.Bar()
    f.Baz()

    f.Bar = Bar2
    f.Bar()
}

func Bar2() {
    fmt.Println("I'm Bar2()")
}

Output(在Go Playground上嘗試):

I'm Bar()
I'm Baz()
I'm Bar2()

參見相關: 作為結構字段或結構方法的函數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM