4

NewThing()各要素を手動で構築する代わりにコンストラクターを自動的に呼び出すなど、この配列の内容を割り当てるより良い方法はありますか?

package main

import "sync"

type Thing struct {
    lock *sync.RWMutex
    data chan int
}

func NewThing() *Thing {
    return &Thing{ lock: new(sync.RWMutex), data: make(chan int) }
}

func main() {
    n := 10
    things := make([]*Thing, n)
    for i := 10; i < n; i++ {
        things[i] = NewThing()
    }
}

ポインターの配列を割り当てていることに気付きました。他の試行は失敗し、データは初期化されたチャネルではありませんでした。これは単なる例です。

ありがとう!

4

1 に答える 1