[英]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.