【问题标题】:What is the type of mutablelistof(2, 'j') in kotlinkotlin 中 mutablelistof(2, 'j') 的类型是什么
【发布时间】:2021-08-27 20:01:14
【问题描述】:
Fun main(){
    Val a = mutableListOf(2, 'j')
}
// What is the type of a?

我想变成这样:val a = mutableListOf,但我没有类型

【问题讨论】:

    标签: kotlin types integer character


    【解决方案1】:

    IntChar的常见超类型是Comparable<*>Serializable,所以a的类型是:

    • MutableList<Comparable<*> & Serializable>

    根据您将对结果列表执行的操作(例如,初始化属性、从函数返回等),一些类型信息将丢失并且类型将被“简化”为:

    • MutableList<out Any>

    或:

    • MutableList<Any>

    【讨论】:

    • 它实际上被推断为类型MutableList<Comparable<*>>,因为这是最具体的常见类型。不过,它并不比 Any 有用,但在某些情况下,由于类型是不变的,因此区别很重要。
    • 好点,您认为我更新的答案在技术上准确吗? @Tenfour04
    • 一旦推断类型被分配给val,它的推断类型就不受下游代码的影响。例如,给定一个函数fun foo(list: MutableList<Any>),您将无法调用foo(a),其中amutableListOf 的推断结果。但是如果你直接传递mutableListOf函数的结果,它会推断它匹配它的目标类型,比如foo(mutableListOf(2, 'j')
    猜你喜欢
    • 1970-01-01
    • 2021-09-20
    • 2014-05-17
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多