gpt4 book ai didi

kotlin - 如何让编译器说出它认为表达式是什么类型?

转载 作者:行者123 更新时间:2023-12-02 12:40:20 25 4
gpt4 key购买 nike

有没有办法让Kotlin编译器确切地告诉我它认为表达式是什么类型?所以给定(1 + 2),它将打印Int

更好的示例:(if (args.isEmpty()) 1 else 2.0)应该显示Any,因为编译器认为这是该术语的类型,因为在编译时它可以做的最好的就是推断出IntDouble的最具体的父类(super class)型。

最佳答案

fun main() {
println(typeName { if (true) 1 else 2.5 }) // Any
println(typeName { 1 + 2 }) // Int
println(typeName { f() }) // String
}


fun f(): String = TODO() // throws NotImplementedError

inline fun <reified T> typeName(block: () -> T): String? = T::class.simpleName

关于kotlin - 如何让编译器说出它认为表达式是什么类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61996116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com