みなさん。 golang の ":="は、変数宣言せずに変数を使える便利な奴ですが、スコープ(有効範囲)を間違えて、二重使用すると「地獄」を見ますよ。

みなさん。 golang の ":="は、変数宣言せずに変数を使える便利な奴ですが、スコープ(有効範囲)を間違えて、二重使用すると「地獄」を見ますよ。

/////a_Point := liPoint
	a_Point := liPoint

	for {
		/////b_Point := a_Point // aがスタート、bがゴール
		b_Point := a_Point // 現在のゴールをスタートにする

		a := <-ch3 // センタからch3待ち(ゴールを教えてもらう)
		if a != -1 {
			a_Point = li[a.(int)]

この最後の行を、

a_Point := li[a.(int)]

となっていて、訳の分からない変数の追跡で、数時間失いました。

2022/03,江端さんの技術メモ

Posted by ebata