Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jvm Kotlin中的单位对象是什么_Jvm_Kotlin - Fatal编程技术网

Jvm Kotlin中的单位对象是什么

Jvm Kotlin中的单位对象是什么,jvm,kotlin,Jvm,Kotlin,现在我正在学习Kotlin,在这里我遇到了这两种方法,一种是使用Unit,另一种是不使用 带有单元的方法 fun printSum(a: Int, b: Int): Unit { println("sum of $a and $b is ${a + b}") } fun printSum(a: Int, b: Int) { println("sum of $a and $b is ${a + b}") } 不带单元的方法 fun printSu

现在我正在学习Kotlin,在这里我遇到了这两种方法,一种是使用
Unit
,另一种是不使用

带有
单元的方法

fun printSum(a: Int, b: Int): Unit {
  println("sum of $a and $b is ${a + b}")
}
fun printSum(a: Int, b: Int) {
  println("sum of $a and $b is ${a + b}")
}
不带
单元的方法

fun printSum(a: Int, b: Int): Unit {
  println("sum of $a and $b is ${a + b}")
}
fun printSum(a: Int, b: Int) {
  println("sum of $a and $b is ${a + b}")
}
我的问题是,
Unit
实际上做什么?在Java中是否类似于
void
?如果它像
void
为什么上面的一个方法没有
单元
运行得很好

当我希望我的方法不返回任何内容时,我应该使用哪一个?以及使用
装置的最佳时间


有人能解释吗?因为这让我很困惑。提前感谢。

是的。网站和github来源中都明确提到:

对象单位
只有一个值的类型:Unit对象。此类型对应于Java中的void类型

同样在存储库中

/** *只有一个值的类型:Unit对象。此类型对应于Java中的
void
类型。 */


那么,没有
单位的方法有什么区别呢?它们都不返回任何内容作为一种方便,Kotlin允许您在返回类型为单位时省略声明返回类型-请参见@GustiArya No,它特别不返回任何内容。单位是一个实际的对象。@Hikaru755我站在
void
位上得到了纠正-显然,Kotlin不是我的主要语言:)@GustiArya实际上,语言总是返回一些东西是很常见的-Scala和F#有着完全相同的东西。例如,在F#中,每个表达式都必须返回一个值,因此如果您不关心返回值,那么它们包含
单元
类型。非常感谢。