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分钟内破解了上面的代码。 我爱科特琳:-)
kotlin