仓颉接口<:小于符号与冒号
接口定义
一个简单的接口定义如下:
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2023-08-04 AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\cores\esp8266/../../bootloaders/eboot/flash.h:16:32: fatal error: spi_flash_geometry.h:
2021-08-04 OpenOCD-HI3861-RISCV使用方法 (JTAG/DTM+SWD/CoreSight)调试器仿真器
2021-08-04 c#字符串序列化-字符串转对象转字符串