首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
如果Add函数的调用代码为:
[单选题]
如果Add函数的调用代码为:
A
B
C
D
查看答案及解析
添加笔记
求解答(2)
邀请回答
收藏(232)
分享
9个回答
添加回答
40
吾皇万睡
Add函数带入的是b而不是*b,所以只能在AC中选,但是i.(Integer)经过类型断言以后就是Integer类型了,无法自动转成*Integer,所以只能选A了
发表于 2018-04-13 11:30:49
回复(2)
更多回答
12
若能干掉我你便是神
函数的参数是Integer类型,所以BD排除,而i调用的是integer的方法,所以C排除。如果将题目改成sum := a.Add(b)则可以选AC。
发表于 2018-01-25 21:30:00
回复(0)
9
格林威治的钟
类型断言之后,如果成功,那么对象的类型就为断言类型。如这里的integer.
发表于 2019-07-24 13:06:39
回复(0)
4
牛客717689011号
主要区分A与C,BD还不明白的话,建议回去复习C语言的函数章节。C的写法其实没有错,但是要注意一点,在C中,方法的调用对象是指针,虽然golang能够自动帮你实现调用对象指针与对象的隐性转换,但对于方法调用对象是指针的情况,有一个例外,即调用时,对象不能是临时变量,而C断言后的对象就是一个临时对象。
要用C,main中正确的写法是
d := i.(Integer)
sum :=d.Add(b)
这样d就不再是一个临时变量,你用C取定义Add方法,也不会有什么问题
发表于 2024-03-08 17:00:41
回复(0)
3
凉秋tryhard
i.(Integer)的类型是Integer,Integer和*Integer是两个不同的类型
发表于 2018-01-17 19:11:30
回复(0)
1
迷路的哈士奇
类型断言成功后,就是断言类型
发表于 2021-03-22 19:32:19
回复(0)
1
伯爵213
楼上说的对
发表于 2020-02-11 04:09:39
回复(0)
0
想开了的刚子很想润
i.(integer)将i接口变量转换为integer并返回转换后的变量值。
发表于 2023-04-26 15:15:06
回复(0)
0
默鱼201804072016301
参数不是指针,所以入参不是指针类型,断言使用的是Inter所以不是指针
发表于 2021-04-15 10:42:50
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Go
上传者:
loulou小妖精
难度:
9条回答
232收藏
2180浏览
热门推荐
相关试题
通过指针变量 p 访问其成员变量 ...
Go
评论
(9)
下面属于关键字的是()
Go
评论
(11)
设A,B是两个n阶方阵,其中B是对...
概率论与数理统计
评论
(1)
来自
2024年秋招-蚂蚁集团...
预训练商品标题模型时,生僻品牌名(...
大模型开发
评论
(1)
运行以下程序之后,输出的结果为()
C语言
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题