Go每日一题(89) 的题目如下

4380 次点击 · 6 赞 ·大约8小时之前 开始浏览   · 来源「Golang来啦」

下面这段代码输出什么?为什么?

func (i int) PrintInt ()  {
	fmt.Println(i)
}

func main() {
	var i int = 1
	i.PrintInt()
}
  • A. 1
  • B. compilation error
4380 阅读
49 回复
euibieur894
euibieur894 · #1 · 3年之前

打卡

henry1
henry1 · #2 · 3年之前

ok

minQie
minQie · #3 · 3年之前

di

gonglf
gonglf · #4 · 3年之前

基于类型创建的方法必须定义在同一个包内。可以定义一种新的类型,并在这个包里绑定方法。

Natsuwau
Natsuwau · #5 · 3年之前

mark

summers
summers · #6 · 3年之前

M

AntonyZhang
AntonyZhang · #7 · 3年之前

mark

brothersam
brothersam · #8 · 3年之前

B. compilation error 基础类型不能绑定方法 。 (golang码农求职)

feiyang
feiyang · #9 · 3年之前

基于类型创建的方法必须定义在同一个包内

Zuos
Zuos · #10 · 3年之前

mark

mingtop
mingtop · #11 · 3年之前

基于类型创建的方法必须定义在同一个包内,同一个包里

neil_liu
neil_liu · #12 · 3年之前

mark

dingweihua
dingweihua · #13 · 3年之前

知识点:基于类型创建的方法必须和类型定义在同一个包内

QRQRQRqrqr
QRQRQRqrqr · #14 · 3年之前

func (i int) PrintInt () { fmt.Println(i) }

func main() { var i int = 1 i.PrintInt() }

基于类型创建的方法必须定义在同一个包内,上面的代码基于 int 类型创建了 PrintInt() 方法,由于 int 类型和方法 PrintInt() 定义在不同的包内,所以编译出错。解决的办法可以定义一种新的类型:

type Myint int

func (i Myint) PrintInt () { fmt.Println(i) }

func main() { var i Myint = 1 i.PrintInt() }

feiyang
feiyang · #15 · 2年之前

基于类型创建的方法必须定义在同一个包内

bsdx866
bsdx866 · #16 · 2年之前

基于类型创建的方法必须定义在同一个包内

kingJ
kingJ · #17 · 2年之前

基于类型创建的方法必须定义在同一个包内

huangyf168
huangyf168 · #18 · 2年之前

mark

wzbwzt
wzbwzt · #19 · 2年之前

1

a406299736
a406299736 · #20 · 2年之前

1

Yt3134
Yt3134 · #21 · 2年之前

mark

1121cczj
1121cczj · #22 · 2年之前

mark

hasbug
hasbug · #23 · 2年之前

mark

brothersam
brothersam · #24 · 2年之前

B. compilation error 。小写参数跨包调用了。基础类型是在另外的包里定义的。

YuPeng
YuPeng · #25 · 2年之前

打卡

huangyf168
huangyf168 · #26 · 2年之前

mark

na-ee
na-ee · #27 · 2年之前

image.png

hupeng
hupeng · #28 · 2年之前

基于类型创建的方法必须定义在同一个包内

feiyang
feiyang · #29 · 2年之前

基于类型创建的方法必须定义在同一个包内,上面的代码基于 int 类型创建了 PrintInt() 方法,由于 int 类型和方法 PrintInt() 定义在不同的包内,所以编译出错。解决的办法可以定义一种新的类型:

cllgeek
cllgeek · #30 · 2年之前

打卡

feiyang
feiyang · #31 · 2年之前

基于类型创建的方法必须定义在同一个包内,上面的代码基于 int 类型创建了 PrintInt() 方法,由于 int 类型和方法 PrintInt() 定义在不同的包内,所以编译出错

kingJ
kingJ · #32 · 2年之前

打卡

YuPeng
YuPeng · #33 · 2年之前

打卡

1174en
1174en · #34 · 2年之前

m

hasbug
hasbug · #35 · 2年之前

mark

528548004
528548004 · #36 · 2年之前

mark

ioioj5
ioioj5 · #37 · 2年之前

基于类型创建的方法必须定义在同一个包内

cllgeek
cllgeek · #38 · 大约1年之前

11

528548004
528548004 · #39 · 大约1年之前

mark

1174en
1174en · #40 · 大约1年之前

m

djh-A
djh-A · #41 · 大约1年之前

打卡

zhangwei_go
zhangwei_go · #42 · 大约1年之前

基于类型创建的方法必须定义在同一个包内,上面的代码基于 int 类型创建了 PrintInt() 方法,由于 int 类型和方法 PrintInt() 定义在不同的包内,所以编译出错。解决的办法可以定义一种新的类型:

BigBigGopher
BigBigGopher · #43 · 大约1年之前

mark

YuPeng
YuPeng · #44 · 大约1年之前

b

lijinzhu0312
lijinzhu0312 · #45 · 9月之前

B. compilation error

YuPeng
YuPeng · #46 · 6月之前

b

cllgeek
cllgeek · #47 · 6月之前

22

Dessert
Dessert · #48 · 6月之前

基于类型创建的方法必须定义在同一个包内

bsdx866
bsdx866 · #49 · 6月之前

image.png

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传