不能使用 type chan []string) 作为 type []chan 字符串?

Posted

技术标签:

【中文标题】不能使用 type chan []string) 作为 type []chan 字符串?【英文标题】:Cannot use type chan []string) as type []chan string? 【发布时间】:2019-05-31 14:45:51 【问题描述】:
package main

import "fmt"

func x(foo []string, cz chan string) 
    for i := range foo 
        cz <- foo[i]
    


func y(foo []string, cz chan string) 
    for i := range foo 
        cz <- foo[i]
    


type cz struct 
    cSlice []chan string


func main() 

    var quality []string = make([]string, 2)
    quality[0] = "hello"
    quality[1] = "world"
    //name := []string"mother", "earth"

    var channel cz

    for i := range channel.cSlice 
        go x(quality, channel.cSlice[i])
        go y(quality, channel.cSlice[i])
        x, y := <-channel.cSlice[i], <-channel.cSlice[i]
        fmt.Println(x, y)
    

现在什么都没有收到嗯...

更新^

...需要更多文字。

...然后再多一点。好的,还有多少?

我真的不敢相信。 fdsaf asf asfasdfdasfadfd

【问题讨论】:

检查你的函数参数,你要求一个 []chan 字符串,它是一个通道切片,而不是一个 chan [] 字符串。 是的,我搞砸了哈哈。 【参考方案1】:
cannot use channel.cSlice (type chan []string) as type []chan string in argument to x
cannot use channel.cSlice (type chan []string) as type []chan string in argument to y

阅读错误信息。

type chan []string

type []chan string

它们是不同的。

游乐场:https://play.golang.org/p/CKhj8DUGTle

【讨论】:

谢谢...但是现在:无效操作: @user10032371 你似乎是对的。我更新了代码,它的工作原理是减去未发送到 func x, y 的“质量”。

以上是关于不能使用 type chan []string) 作为 type []chan 字符串?的主要内容,如果未能解决你的问题,请参考以下文章

Powershell:您不能调用空值表达式

打字稿:键入'字符串| undefined' 不能分配给 type 'string'

页面不能访问,抛出 spring java.lang.IllegalArgumentException: Name for argument type [java.lang.String] 异常

参数类型 'Book' 不能分配给参数类型 'Map<String, dynamic>'.dart(argument_type_not_assignable)

不能用邮递员发帖,为啥?

不能对 Type-GraphQL 字段类型使用类型“对象”