Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么go编译器将我的变量标记为未使用?_Go_Concurrency - Fatal编程技术网

为什么go编译器将我的变量标记为未使用?

为什么go编译器将我的变量标记为未使用?,go,concurrency,Go,Concurrency,关于StackOverflow,我的第一个问题是:D 我正在跑1.16。我创建了这个函数: func_m*MyPool在通道中…chan接口{}错误{ 对于u,out:=测距{ out=\u m.inChan } 归零 } MyPool是工作池类型,除其他成员外,还包含: 类型MyPool struct{ inChan chan接口{} } 我的主要问题是Go在通过InChannel的变量输入进行测距时,会标记out loop变量。为什么呢?我确实在用它 对不起,我是StackOverflow的

关于StackOverflow,我的第一个问题是:D

我正在跑1.16。我创建了这个函数:

func_m*MyPool在通道中…chan接口{}错误{ 对于u,out:=测距{ out=\u m.inChan } 归零 } MyPool是工作池类型,除其他成员外,还包含:

类型MyPool struct{ inChan chan接口{} } 我的主要问题是Go在通过InChannel的变量输入进行测距时,会标记out loop变量。为什么呢?我确实在用它

对不起,我是StackOverflow的noob,所以我正在编辑以澄清一点。我确实想分配,而不是发送。这是因为发送方将outChan chan接口{}作为成员变量,并将通过以下方式发送值:

func s*发送方输出接口{}{ 挑选{
case你没有真正使用它。你给一个你没有读过的变量赋值,所以赋值没有效果,所以基本上你没有使用这个变量

请注意,=是。如果要在频道上发送内容,请使用以下语句:

out <- _m.inChan

然而,在你的情况下,这没有什么好处,因为你是在可变参数的切片上进行测距。

也没有错,虽然它在任何意义上都没有错,但接收器变量的名称_m不是很好的Go样式:m就可以了。非常有趣,我假设这是由于可变输入造成的?如果我不使用可变输入,驴ignment确实生效,对吗?这与variadic参数无关。您有一个循环变量out,您为其赋值,但您从未读取该变量。因此它没有用处,被归类为未使用。Go不允许未使用的变量。赋值生效-@eloib not it not,out in channel是调用方的值,您所做的只是分配给副本,调用方的值不会更改。如果必须这样做,请使用指针间接寻址。谢谢大家!很抱歉造成混淆,我为创建的MyPool类型使用了相同的方法,因为它确实包含inChan chan接口{},但是该方法是在MyPool指针接收器上实现的,因此需要一个chan指针是完全有道理的!!
s := []int{1, 2, 3}
for i := range s {
    s[i] = 10 // Assign a value to the slice elements
}