Intereting Posts
Как вставить объект RealmList с помощью copyToRealm Не удается вызвать оператор () на Observable в Kotlin Android Неверный положительный результат в проверке линзы Android для LinkedHashMap.remove () Как включить аутентификацию носителей в приложении Spring Boot? Отправка предварительно рассчитанного результата от одной активности Kotlin в текстовое представление в другом Невозможно ссылаться на методы сопутствующих объектов Сценарий тестового сценария с колллинским обратным вызовом лямбда Почему класс Kotlin не нужно открывать в Spring Boot больше Перезагрузка класса Kotlin сопутствующими объектами / функциями Spring Boot + Kotlin AutoProxyRegistrar вызывает исключение Nullpointer Являются ли числовые операции с использованием Kotlin столь же быстрыми, как эквивалент с Java-примитивами? Обертывание всех внутренних методов одним и тем же пробником в Котлине В какой ситуации val / var необходим в параметре конструктора Котлина? Рециркуляция просмотров share state Удалить слушателя Firebase не работает

Ожидается, что в Котлине ожидается активатор или сеттер

Я изучаю Kotlin из официальных документов, я пытаюсь создать класс для выполнения арифметических операций.

 class Sum { var a: Int, b: Int; constructor(a: Int, b: Int) { this.a = a this.b = b } fun add(): Int { return a + b } } 

У меня есть этот класс, теперь я хочу создать объект этого класса, например

 val sum = Sum(1,2) Log.d("Sum", sum.add()) 

Я получаю эту ошибку в классе Sum :

Ожидается активатор свойств или сеттер

на b: int; внутри строки var a: Int, b: Int;

Вы пишете ненужный код в своем классе.

Напишите короткую форму для constructor если она есть только одна.

Если в классе есть свойства, они могут быть определены в constructor с помощью val или var .

Используйте его, как показано ниже:

 class Sum (var a: Int,var b: Int){ fun add(): Int { return a + b } } 

Читайте базовый синтаксис Kotlin .

Ошибка будет решена просто объявлением переменных в двух строках:

 var a: Int var b: Int 

Однако рекомендуется использовать эти переменные в конструкторах (если вы хотите иметь только один конструктор с аргументами):

 class Sum(var a: Int, var b: Int) { fun add(): Int = a + b } 
 var a: Int, b: Int; 

Kotlin не позволяет иметь несколько деклараций в одной строке. Вы должны пойти для:

 var a: Int var b: Int 

вместо. Люди Котлина просто обнаружили, что практика C / java «int a, b, ..» является тем, что они не хотят поддерживать в Котлине.

следующий код показывает вам, как назначать и манипулировать переменными в вашем классе

 class Sum (var a: Int,var b: Int){ fun add(): Int= a + b //you can return the results directly. } 

вы можете протестировать свой код, используя основной ниже.

 fun main(args: Array<String>) { var s= Sum(1,2) print(s.add()) }