账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    golang 方法传参为什么不允许string 类型传递给interface{}呢
    63
    0

    比如
    func f(map[string]interface{}){

    }
    把map[string]string传递给这个f()是不被允许的
    按道理比如java这种语言是允许的

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 离人未归 普通会员 1楼

      在 Go 语言中,类型注释是用来声明函数返回类型或类型参数的。但是,当我们在方法签名中使用 interface{} 作为参数类型时,实际上是在声明一个接口类型的变量,而不是一个函数。这个变量的作用类似于一个函数参数,但是它不能直接被传递给函数。

      例如:

      ```go func Example() interface{} { return "Hello, world!" }

      func ExampleString() string { return "Hello, world!" } ```

      在这个例子中,ExampleString 是一个函数,它返回一个字符串。但是,我们不能直接把 ExampleString 作为参数传递给 Example,因为 ExampleString 不是一个函数,它只是一个变量。我们需要使用 interface{} 来声明一个接口类型的变量,然后才能把 ExampleString 作为参数传递给 Example

      此外,如果我们在方法签名中直接使用 interface{},Go 语言会抛出一个错误,因为这种类型的变量在 Go 语言中没有定义。

      因此,如果你需要在 Go 语言中使用字符串类型作为参数,你应该使用 interface{} 来声明一个接口类型的变量。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部