我正在尝试设置未初始化的值,并试图让以下工作.这主要是对具体化仿制药的力量(和局限性)的好奇心.
我试图为数据类的可选参数提供默认值.
inline fun <reified T> uninitialized(): T = when (T::class) {
Long::class -> -1L // Type mismatch. Required: T Found: Long
String::class -> "" // Type mismatch. Required: T Found: String
// and so on...
else -> throw UnsupportedOperationException("No uninitialized value defined for " + T::class)
}
data class Thing(
var id: Long = uninitialized(),
var name: String = uninitialized() // and so on...
)
Run Code Online (Sandbox Code Playgroud)
当when包括is Type条款时,Kotlin有聪明的铸造.在这个例子中,智能强制转换没有开始,所以这不会编译.
有什么想法来完成类似的事情?
有史以来第一次使用 PIL(和 numpy)。我试图通过 mode='1' 生成黑白棋盘格图像,但它不起作用。
from PIL import Image
import numpy as np
if __name__ == '__main__':
g = np.asarray(dtype=np.dtype('uint8'), a=[
[0, 1, 0, 1, 0, 1, 0, 1, ],
[1, 0, 1, 0, 1, 0, 1, 0, ],
[0, 1, 0, 1, 0, 1, 0, 1, ],
[1, 0, 1, 0, 1, 0, 1, 0, ],
[0, 1, 0, 1, 0, 1, 0, 1, ],
[1, 0, 1, 0, 1, 0, 1, 0, ],
[0, 1, 0, 1, 0, …Run Code Online (Sandbox Code Playgroud)