gpt4 book ai didi

kotlin - 将单位类型分配给变量

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

如果您将 Unit 类型分配给 Kotlin 中的变量会怎样?

让我们以这段小代码为例:

val list = listOf("Hey", "this", "code", "runs")
val unit = list.forEach {
print(it.plus(" "))
}

输出:

Hey this code runs

为什么这段代码可以运行?此示例中 val unit 的值是多少?我的意思是,难道不应该有一个 unit.invoke() 函数来实际运行代码吗?

提前致谢!

最佳答案

在 Kotlin 中,Unit是一种只有一个值的类型:也称为 Unit 的对象。

它与Java中的void类型目的相同,但实现方式不同。 (这是因为 Kotlin 借鉴了函数式语言的思想,其中每个表达式都有一个值。因此,如果一个函数没有任何有用的返回值,它会返回 Unit。这将它与 的方法区分开来从不 返回,声明为 Nothing 类型,没有 值。)

您的代码完全有效; forEach() 执行并打印其输出,然后返回 Unit 值。 (forEach() 是您调用只是因为它的副作用而不是因为它的返回值的函数之一。这就是为什么您通常不会费心用返回值;但是你已经证明如果你真的想的话你可以!)

因此您的unit 被推断为Unit 类型,并将被分配Unit 值。

你可以在之后打印它来检查:

println(unit)

打印“kotlin.Unit”,这是对 Unit 值调用 toString() 的结果。

关于kotlin - 将单位类型分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58852960/

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