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

Я изучаю 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;

Solutions Collecting From Web of "Ожидается, что в Котлине ожидается активатор или сеттер"

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

Напишите короткую форму для 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()) }