Когда я использую функцию тела блока для сравнения двух чисел, компилятор выдает ошибку, если я специально не указываю тип возвращаемого значения. Вы можете видеть в функции ниже, что если я не укажу тип возвращаемого значения как Boolean
, он выдает ошибку
fun compare(a:Int,b:Int):Boolean
{
val c= a==b
return c
}
С другой стороны, если я использую функцию тела выражения и не упоминаю какой-либо тип возвращаемого значения , компилятор не выдает ошибок и работает нормально. Как в приведенном ниже примере
fun compare(a: Int, b: Int) = a == b
Причина этого. Я понимаю, что компилятор пытается определить возвращаемые типы, видя тип аргумента, но разве это не применимо к обоим синтаксисам? Почему оба работают по-разному?