栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

用空接口返回类型的参数接受函数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用空接口返回类型的参数接受函数

你绊倒了围棋新人一个非常普遍的误解:空接口

interface{}
不能 意味着“任何类型”。确实不是。Go是静态类型的。空接口
interface{}
是实际的(强类型),例如
string
struct{Foo int}
interface{Explode() bool}

这意味着如果某物具有该类型,

interface{}
则它具有该类型而不是“任何类型”。

您的职能

func test(x func() interface{})

接受一个参数。此参数是一个(无参数函数),它返回特定类型type

interface{}
。您可以将
test
与此签名匹配的任何函数传递给它:“无参数并返回
interface{}
”。没有您的功能
a
并且
b
匹配此签名。

如上所述:

interface {}
“ whatever”不是“ whatever”的神奇缩写,它是一种独特的静态类型。

您必须将例如a更改为:

func a() interface{} {    return "hello"}

现在,当您返回

string
不是type的a时,这可能看起来很奇怪
interface{}
。之所以可行,是因为任何类型都可以分配给该类型的变量
interface{}
(因为每种类型至少都没有方法:-)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/484414.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号