Все функции в Kotlin возвращают значение (поэтому в Kotlin мы называем их функциями, а не методами).Если вы не укажете явно, возвращаемое значение Unit
будет возвращено неявно.Поэтому ваш код:
fun UuidGenerator() {
val id = UUID.randomUUID().toString();
return id.replace("-", "")
}
можно переписать в виде:
fun UuidGenerator(): Unit {
val id = UUID.randomUUID().toString();
return id.replace("-", "")
// ^^^--- oops, won't work
return Unit
}
Если вы посмотрите на его источник, то будет иметь смысл:
/**
* The type with only one value: the Unit object.
* This type corresponds to the `void` type in Java.
*/
public object Unit {
override fun toString() = "kotlin.Unit"
}
Этоэто умный трюк, чтобы покончить с void
.
Теперь, что вы действительно хотите сделать, это указать, что вы возвращаете String
:
fun UuidGenerator(): String {
val id = UUID.randomUUID().toString();
return id.replace("-", "")
}