Go の例(3)
Go のゴルーチンを使わない例も同様に修正します。NumbersServer 構造体の GetNumbers メソッドで計算をしないようにします。コンストラクターで current_numbers に設定する必要はないので削除します。
type NumbersServer struct { current_numbers *Numbers generator_server *IteratorSimpleImpl_Numbers } func newNumbersServer() *NumbersServer { xyz := new(NumbersServer) xyz.generator_server = xyz.GenerateDecimalServer() return xyz } func (xyz *NumbersServer) GetNumbers() *Numbers { return xyz.generator_server.GetCurrent() } func (xyz *NumbersServer) SetNumbers(numbers *Numbers) { xyz.generator_server.SetCurrent(numbers) } func (xyz *NumbersServer) GenerateDecimalServer() *IteratorSimpleImpl_Numbers { number := newLongDecimal([]int{}) square_difference := newLongDecimal([]int{3}) current_numbers := newNumbers(number, square_difference, 0) next := func() bool { return true } getCurrent := func() *Numbers { return current_numbers } setCurrent := func(val *Numbers) { current_numbers = val } return newIteratorSimpleImpl_Numbers(next, getCurrent, setCurrent) }