仓颉接口<:小于符号与冒号
接口定义
一个简单的接口定义如下:
interface I { // 'open' modifier is optional. func f(): Unit }
接口使用关键字 interface 声明,其后是接口的标识符 I 和接口的成员。接口成员可被 open 修饰符修饰,并且 open 修饰符是可选的。
当接口 I 声明了一个成员函数 f 之后,要为一个类型实现 I 时,就必须在该类型中实现一个对应的 f 函数。
因为 interface 默认具有 open 语义,所以 interface 定义时的 open 修饰符是可选的。
如下面的代码所示,定义了一个 class Foo,使用 Foo <: I 的形式声明了 Foo 实现 I 接口。
在 Foo 中必须包含 I 声明的所有成员的实现,即需要定义一个相同类型的 f,否则会由于没有实现接口而编译报错。
class Foo <: I { public func f(): Unit { println("Foo") } } main() { let a = Foo() let b: I = a b.f() // "Foo" }
欢迎讨论,相互学习。
cdtxw@foxmail.com