下面这段代码输出什么?为什么?
func (i int) PrintInt () {
fmt.Println(i)
}
func main() {
var i int = 1
i.PrintInt()
}
- A. 1
- B. compilation error
下面这段代码输出什么?为什么?
func (i int) PrintInt () {
fmt.Println(i)
}
func main() {
var i int = 1
i.PrintInt()
}
`单行代码`
打卡
ok
di
基于类型创建的方法必须定义在同一个包内。可以定义一种新的类型,并在这个包里绑定方法。
mark
M
mark
B. compilation error 基础类型不能绑定方法 。 (golang码农求职)
基于类型创建的方法必须定义在同一个包内
mark
基于类型创建的方法必须定义在同一个包内,同一个包里
mark
知识点:基于类型创建的方法必须和类型定义在同一个包内
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() }
基于类型创建的方法必须定义在同一个包内
基于类型创建的方法必须定义在同一个包内
基于类型创建的方法必须定义在同一个包内
mark
1
1
mark
mark
mark
B. compilation error 。小写参数跨包调用了。基础类型是在另外的包里定义的。
打卡
mark
基于类型创建的方法必须定义在同一个包内
基于类型创建的方法必须定义在同一个包内,上面的代码基于 int 类型创建了 PrintInt() 方法,由于 int 类型和方法 PrintInt() 定义在不同的包内,所以编译出错。解决的办法可以定义一种新的类型:
打卡
基于类型创建的方法必须定义在同一个包内,上面的代码基于 int 类型创建了 PrintInt() 方法,由于 int 类型和方法 PrintInt() 定义在不同的包内,所以编译出错
打卡
打卡
m
mark
mark
基于类型创建的方法必须定义在同一个包内
11
mark
m
打卡
基于类型创建的方法必须定义在同一个包内,上面的代码基于 int 类型创建了 PrintInt() 方法,由于 int 类型和方法 PrintInt() 定义在不同的包内,所以编译出错。解决的办法可以定义一种新的类型:
mark
b
B. compilation error
b
22
基于类型创建的方法必须定义在同一个包内