inline fun <T, I, R> intBitwise(crossinline to: (T) -> I, crossinline op: I.(I) -> I, crossinline from: (I) -> R): T.(T) -> R删掉算了
= { to(this).op(to(it)).let(from) }
inline fun <T, I, R> intByteBitwise(crossinline to: (T) -> I, crossinline op: I.(Byte) -> I, crossinline from: (I) -> R): T.(Byte) -> R
= { b -> to(this).op(b).let(from) }
internal fun Int.or(byte: Byte): Int = or(byte.toInt())
我有个坏习惯,就是不擅长把一个抽象的复用库单独写。我喜欢与某些特定的应用实例一起设计,然后再把它们单独提取公开出来。
val fst: Int by index(0) 我开始还以为是 Kotlin 无法推断 fun <T> index(idx: Idx): Index<T> 的类型,后来发现其实自己想当然写了个错误的 getValue 提交了,只不过 IDE 没检查出来我顿悟了!
bytesToIntegral(zero, shl, or, bytes.iterator()) 是内联的,所以它里面的 accumulator = zero 实际上一直指代的是一个只读的参数?