kotlin_Kotlin掷骰子

kotlin

大约2年前,我写了一篇文章 ,介绍如何在Scala中创建模具滚动API。 随着我对Kotlin的兴趣越来越大,让我们在Kotlin中做到这一点。

Rollable接口位于层次结构的根部:

interfaceRollable<T>{
    funroll():T
}

基类是Die

openclassDie(valsides:Int):Rollable<Int>{

    init{
        valrandom=newSecureRandom()
    }

    overridefunroll()=random.nextInt(sides)
}

现在让我们创建一些对象:

objectd2: Die(2)
objectd3: Die(3)
objectd4: Die(4)
objectd6: Die(6)
objectd10: Die(10)
objectd12: Die(12)
objectd20: Die(20)

最后,为了使使用Die实例的代码可测试,让我们更改类以注入Random

openclassDie(valsides:Int,privatevalrandom:Random=SecureRandom()):Rollable<Int>{
    overridefunroll()=random.nextInt(sides)
}

请注意, random属性是private ,因此只有类本身可以使用它-甚至不会有吸气剂。

我最酷的事情是我在飞机上15分钟内破解了上面的代码。 我爱科特琳:-)

翻译自: https://blog.frankel.ch/rolling-dice-kotlin/

kotlin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值