golang使用struct本身初始化成员,用于sync.Mutex和sync.Cond

时间:2017-06-07 18:41:17

标签: go struct

这是代码:

sync.Mutex (type) is not an expression

此代码无法编译:

<tbody  *ngFor = "let request of slicedRequestObjects | category: searchText : optionVal | orderBy: convertSorting(); let i = index;" >

所以基本上问题是如何在初始化时引用struct本身(因为它有一个嵌入式成员sync.Mutex)? (例如,c ++有 this )。

1 个答案:

答案 0 :(得分:2)

您可以先创建一个新实例,然后参考嵌入字段:

type SomeThing struct {
    sync.Mutex
    cv  *sync.Cond
    num int
}

func NewSomething() *SomeThing {
    st := &SomeThing{}
    st.cv = sync.NewCond(&st.Mutex)
    return st
}

GoPlay:https://play.golang.org/p/BlnHMi1EKT