gpt4 book ai didi

variables - 在Kotlin中明确指定类型与未明确指定类型之间有什么区别?

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

例如,这之间有什么区别:

var serviceItem: String = “Haircut”
var serviceItem = “Haircut”

最佳答案

您提供的示例是等效的。
但是,在许多情况下,您可能希望显式指定它。
最直接的是如果您希望成员类型是父类(super class):

val list: List<Foo> = ArrayList<Foo>()
另一个可能是,如果您有一个复杂的表达式,其中的类型不明显,并且您希望它对于那些在打开了类型提示的情况下(例如代码检查)在IDE中没有看到它的人来说是显而易见的。在这种情况下,它也可以是防错的:您可能要确保不要意外地将其重构为不是 List<Foo>的内容:
val list: List<Foo> = foo.bar.getBaz().frobnicateWith(bar.foo)
有时,您尝试向类型推断提供提示以初始化表达式(在这种情况下,否则,您必须使用 mutableListOf<Foo>():
val list: MutableList<Foo> = mutableListOf()
作为 gidds pointed out in a comment,如果初始化表达式是 platform type,也可以这样做:
val foo = LinkedList<Int>().apply { add(1) }
val bar: Int = foo.first // bar would otherwise be of type Int!

关于variables - 在Kotlin中明确指定类型与未明确指定类型之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62549363/

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