第一次 kotlin 开发大会在一个能容纳 900 的会议室举办, 结果就来了 7 个人. 本次分享就是基于 kotlin 的大牛分享提供, 加入个人见解, 如有错误请指正.
图
在 kotlin 创建函数形式多种多样, 上面我们写了一个简单的函数, 看起来更直观.
图
根据输入, 根据货币的类型进行换算货币的金额.
图
我们将 when 整体处理为一个表达式. 这里的方法 convertToDollars 的返回这个表达式.
图
这样我们就可去掉 when 中每个分支语句的 return. 同样我们干脆就把表达式作为一个返回值. 看上去简单明了.
图
这里报有错, 因为操作 BigDecimal 为 int, 所以需要处理一下.
图
需要修改一 Money 构造函数, 然后进行一个一个地将 int 包裹 BigDecimal 来转型.
图
我们定义 nd1 = BigDecimal(100) 然后的所有方法 然后想对 BigDecimal 进行百分比运算. 如果了解 c# 扩展, 我们可以对基本类型进行扩展, 在任意类或包中进行类型的扩展.
percent 扩展函数将 BigDecimal 扩展了取百分比函数. 该类的一个实例, 我们可以他引用 this 然后通过一系列操作来取值.
图
我们为 Int 通过扩展函数 percentOf 扩展 int 的取百分比函数, 为 int 提供了一个取百分比的方法
图
图
图
图
我们也可以去掉括号 写成 7 percentOf popcorn 这么写好处是为 DSL 奠定了基础.
图
通过重复写 get 方法来实现 int 向 BigDecimal 的转型我们简化了 BigDecimal(int) 为 int.bd
图
get
图
来源: http://www.jianshu.com/p/49d8b9ee0339