275~277说的好难懂啊
This commit is contained in:
4
2.6.md
4
2.6.md
@@ -187,12 +187,12 @@ interface类型定义了一组方法,如果某个对象实现了某个接口
|
|||||||
### interface函数参数
|
### interface函数参数
|
||||||
interface的变量可以持有任意实现该interface类型的对象,这给我们编写函数(包括method)提供了一些额外的思考,我们是不是可以通过定义interface参数,让函数接受各种类型的参数。
|
interface的变量可以持有任意实现该interface类型的对象,这给我们编写函数(包括method)提供了一些额外的思考,我们是不是可以通过定义interface参数,让函数接受各种类型的参数。
|
||||||
|
|
||||||
举个例子:我们已经知道fmt.Println是我们常用的一个函数,但是你是否注意到它可以接受任意类型的数据。打开fmt的源码文件,你会看到这样一个定义:
|
举个例子:fmt.Println是我们常用的一个函数,但是你是否注意到它可以接受任意类型的数据。打开fmt的源码文件,你会看到这样一个定义:
|
||||||
|
|
||||||
type Stringer interface {
|
type Stringer interface {
|
||||||
String() string
|
String() string
|
||||||
}
|
}
|
||||||
任何实现了String方法的类型都能作为参数去调用fmt.Println,让我们来试一试
|
也就是说,任何实现了String方法的类型都能作为参数被fmt.Println调用,让我们来试一试
|
||||||
|
|
||||||
package main
|
package main
|
||||||
import (
|
import (
|
||||||
|
|||||||
Reference in New Issue
Block a user