这个代码很完美,但你能让它更像 Kotlin 吗?当你天天对同事的 PR/MR 进行审查时会有什么建议吗?你可能会写一些如许的评论:
- 太多 when() 函数。应用 Pair 来避免嵌套。
- 改变列举参数的次序,定义 Pair() 对象来让它更易读。
- 归并反复的 return。
- 改为一个表达式函数。
- fun access(contract: Contract,
- employee: Employee) = when (Pair(contract, employee)) {
- Pair(PROBATION, SENIOR_ENGINEER),
- Pair(PROBATION, REGULAR_ENGINEER),
- Pair(PROBATION, JUNIOR_ENGINEER) -> NotGranted(AssertionError("Access not allowed on probation contract."))
- Pair(PERMANENT, SENIOR_ENGINEER),
- Pair(PERMANENT, REGULAR_ENGINEER),
- Pair(PERMANENT, JUNIOR_ENGINEER),
- Pair(CONTRACTOR, SENIOR_ENGINEER) -> Granted(DateTime(1))
- Pair(CONTRACTOR, REGULAR_ENGINEER),
- Pair(CONTRACTOR, JUNIOR_ENGINEER) -> Blocked("Access for junior contractors is blocked.")
- else -> throw AssertionError("Unsupported case of $employee and $contract")
- }
如今它看起来更整洁,但 Kotlin 还有语法糖可以完全省略对 Pair 的定义。棒!
这个构造让我的生活变得轻松,也让 Kotlin 代码读写变得轻易,我欲望你也认为这很有效。但它是不是不克不及用于三元组呢?谜底是肯定的。
以上就是第 1 部分的全部内容,如不雅你仍然很有兴趣,请持续浏览第 2 部分。干杯!
【编辑推荐】
- Kotlin 一统世界?Kotlin/Native 支撑 iOS 和 Web 开辟
- Kotlin和Java法度榜样员福利:轻量级Web框架Javalin
- Kotlin 很受 Java 开辟人员的迎接
- Kotlin VS Java – 编程说话之间的对决
- 2017年12月编程说话排名:Kotlin和C说话成为“年度编程说话”候选人”
推荐阅读
开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散 登录网站时必须输入的图片验证码可以用来辨认拜访者到底是人照样机械——这同时也是某种程度上的「图灵测试」,人工智能>>>详细阅读
本文标题:6个能让你的Kotlin代码库更有意思的“魔法糖”
地址:http://www.17bianji.com/lsqh/39802.html
1/2 1