kotlin - 如何使用函数类型的 typealias?
问题描述
我怎样才能使用这个类型?
typealias MyHandler = (Int, String) -> Unit
我试过这个但它不起作用:
var myHandler = MyHandler(1, "2")
解决方案
您正在尝试实例化 typealias 并且遇到interface doesn't have a constructor
错误。据我了解,具有函数类型的 typealias 需要三个步骤:
定义 typealias 本身
typealias MyHandler = (Int, String) -> Unit
声明该类型的动作
val myHandler: MyHandler = {intValue, stringValue -> // do something }
使用该动作,例如
class Foo(val action: MyHandler) { val stateOne: Boolean = false // ... fun bar() { if (stateOne) { action.invoke(1, "One") } else { action.invoke(0, "notOne") } } }
推荐阅读
- javascript - 电子从 ipcMain 发送数据到 ipcRender
- javascript - Javascript - 围绕异步 WebSocket 构建异步接口
- python - python-elasticsearch:如何启用 curl 日志记录?
- sql-server - 获取值不为空的第一个条目 SQL Server 2012
- elasticsearch - kibana 中的 ElasticSearch 内存使用情况与 Windows 不匹配
- javascript - 传入的对象无效,应为 ':' 或 '}'
- php - 包含的函数不能在 php 中包含的标头和导航栏文件中工作
- google-cloud-ml - 如何转换为多类分类模型?
- python - Python:PCM 音频操作 - 使用结构时左声道嘈杂
- ibm-mobilefirst - MobileFirst 7.1(错误:“访问服务器已禁用”)