go::=左侧的非名称>

问题描述 投票:0回答:1

我正在go中对同步机制进行一些练习/尝试。

为什么最后的for迭代未能将缓冲的通道valchan所保存的值分配给mysl切片?

错误是

./ myprog.go:28:7::=]左侧的非名称mysl [i

package main

import (
    "sync"
)

const NUM_ROUTINES = 2

func sendValue(c chan string) {
    c <- "HelloWorld"
}

func main() {
    valchan := make(chan string, NUM_ROUTINES)
    var wg sync.WaitGroup
    wg.Add(NUM_ROUTINES)

    for i := 0; i < NUM_ROUTINES; i++ {
        go func() {
            sendValue(valchan)
            wg.Done()
        }()
    }
    wg.Wait()

    mysl := make([]string, 2, 2)
    for i := 0; i < NUM_ROUTINES; i++ {
        mysl[i] := <-valchan
    }
}

我正在练习/尝试同步机制。为什么最后一次迭代无法将缓冲通道valchan保留的值分配给mysl slice?错误...

go synchronization channel
1个回答
0
投票

您正在使用“短变量声明”语法。从language specification

© www.soinside.com 2019 - 2024. All rights reserved.