Я закончил курс Котлина ОТКРЫТАЯ КЛАССА, он действительно хорош для новичков и бесплатный. Я делюсь здесь тем, что узнал.

Kotlin разработан JetBrains для устранения ограничений, с которыми он столкнулся в Java при разработке различных продуктов. Kotlin поддерживает объектно-ориентированное программирование и функциональное программирование. Kotlin - это программа с открытым исходным кодом, поддерживает большинство IDE и работает на большинстве современных платформ Java.

1. Объявление и инициализация переменных:

Объявление переменной в Kotlin немного отличается от Java. Вы можете объявить переменную в Kotlin, используя ключевое слово var или val:

  • var: переменная, объявленная с помощью ключевого слова var, изменяема. Это означает, что вы можете изменить значение переменной после ее инициализации.
  • val: переменная, объявленная с помощью ключевого слова val, неизменяема. Это эквивалентно последнему ключевому слову в Java. Это означает, что вы не можете изменить значение переменной после ее инициализации. Переменная val должна быть инициализирована в том же блоке кода, в котором она была объявлена.
val name: String = "Kundan "
val age: Int = 26
val isDeveloper: Boolean = true
var developerType: String = "Android Developer"

Kotlin не требует от вас указывать тип переменной во время объявления. Вы также можете инициализировать указанные выше переменные, как показано ниже.

val name = "Kundan "
val age = 26
val isDeveloper = true
var developerType = "Android Developer"

Переменные в Kotlin по умолчанию не допускают значения NULL. Если вы хотите, чтобы переменная содержала нулевое значение, вы должны заявить, что она может это сделать. Чтобы разрешить нулевые значения в Kotlin, добавьте вопросительный знак (?) К объявлению типа переменной:

var message: String? = "Hello Kundan, how are you "

Если вы не хотите инициализировать переменную сразу после ее объявления, подождите немного позже в коде. Итак, вы можете использовать ключевое слово lateinit для поздней инициализации:

class User {
private var lateinit name: String
fun initialize(username: String) {
    this.name = username
 }
}

2. Создать функцию:

Функция в Kotlin объявлена ​​с использованием ключевого слова fun. Теперь создайте функцию, которая возвращает меньшее из значений двух переменных, переданных в качестве параметров:

В Kotlin все функции возвращают значение, даже если тип возвращаемого значения не указан. Например:

fun printMessage(message: String) {
  println(message)
}

В приведенном выше примере функция printMessage (message: String) возвращает значение Unit, которое является типом по умолчанию, созданным Kotlin. Единица похожа на void в Java.

Функция не обязательно должна иметь тело и может содержать только выражение. Это также называется функцией одного выражения. Например:

fun sum(x: Int, y: Int): Int = x + y

Явное объявление типа возвращаемого значения необязательно, если это может быть определено компилятором:

fun sum(x: Int, y: Int) = x + y

3. Класс:

Ключевое слово class, используемое для объявления класса в Kotlin, за которым следует имя класса. Скобки сразу после имени класса называются первичным конструктором. Свойства класса можно объявить в основном конструкторе.

В Kotlin видимость класса по умолчанию установлена ​​на общедоступный. Есть четыре основных модификатора видимости для членов (переменных, функций и т. Д.):

  • public: участник, объявленный общедоступным, будет виден везде.
  • закрытый: член, объявленный закрытым, будет виден только внутри того класса, который он объявлен.
  • internal: член, объявленный внутренним, будет виден любому клиенту внутри того же модуля.
  • protected: член, объявленный закрытым, будет виден только внутри класса и в его подклассах.

В Kotlin вам не нужно ключевое слово новое для создания экземпляра класса как объекта:

val user = User("Kundan", "Kotlindemo", 26)

В Kotlin сеттеры и геттеры автоматически генерируются в коде.

  • val: Ключевое слово val, помещенное перед именем свойства в конструкторе класса, указывает Kotlin автоматически сгенерировать геттер.
  • var: Ключевое слово val, помещенное перед именем свойства в конструкторе класса, указывает Kotlin автоматически сгенерировать геттер и сеттер.

4. Если и когда утверждения:

  • If: в Kotlin if является выражением и может возвращать значение. Kotlin исключает использование тернарного оператора, используя if else в качестве выражений.
val max = if(a > b) a else b

Если ветви могут быть блокированными и последнее выражение является значением блока:

val max = if(a > b) {
             println("a is greater than b")
             println("a is the max value")
             a
           }
            else { 
             println("b is greater than a")
             println("b is the max value")
             b     
           }
  • when: в Kotlin аналогично переключению на других языках. when сопоставляет свой аргумент со всеми ветвями последовательно, пока не будет выполнено какое-либо условие ветвления.
var response = 403
when(response) {
     200 -> println("OK")
     401 -> println("UNAUTHORIZED")
     403 -> println("FORBIDDEN")
     404 -> println("NOT FOUND")
     else -> println("UNKNOWN")
}

5. Итерируйте, используя циклы:

  • цикл for: в Kotlin цикл for используется в форме: ‹item› в ‹elements›. Например, перебирать диапазон чисел, использовать диапазоны
for(i in 1..8) {
   println("item: $i")
}

Ключевое слово step в цикле for используется для пропуска итераций. Например:

for(i in 1..8 step 2) {
   println("item: $i")
}

В приведенном выше примере ключевое слово step используется для пропуска одного элемента и прямого доступа к элементу i + 2.

  • цикл while: цикл while и do.. while работает точно так же, как и в Java.
//while loop
var a = 0
while(a < 6) {
     println("Iteration count: $a")
     a++
}
//do..while loop
var a = 0
do { 
   println("Iteration count: $a")
   a++
}while(a < 6)

6. Сборник:

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

  • Неизменяемый: он поддерживает только функции чтения и не может быть изменен его элементы. Общие методы неизменяемой коллекции Kotlin:

listOf: позволяет создавать упорядоченный и неизменяемый список элементов.

val listOfNames = listOf("Kundan", "Iti", "Kajal", "Koyal")
listOfNames[1] = "Priti" //Error: list is immutable

setOf: позволяет создавать неупорядоченный и неизменяемый список элементов.

val setOfNames = setOf("Kundan", "Iti", "Kajal", "Koyal")
setOfNames.add("Priti") //Error: set is immutable

mapOf: позволяет создавать неизменяемый список пар ключ-значение.

val mapOfNames = mapOf("x" to "Iti","c" to "Kajal","f" to "Koyal")
mapOfNames[key] = "value" //Error: map is immutable

7. Функция расширения:

В Kotlin функция extension используется для расширения поведения класса, который будет восприниматься как принадлежащий самому классу. Например, вы можете использовать расширения для добавления метода greetMessage () внутри класса String.

fun String.greetMessage() = println("Welcome $name")

Чтобы объявить функцию расширения, начните с ключевого слова fun. Затем напишите тип приемника, точку и имя функции, которую вы хотите создать.

Резюме

  • Вы можете объявить переменную в Kotlin, используя ключевое слово var или val.
  • Функция в Kotlin объявлена ​​с использованием ключевого слова fun. В Kotlin все функции возвращают значение, даже если тип возвращаемого значения не указан.
  • В Kotlin if является выражением и может возвращать значение.
  • когда в Котлине, аналогично переключению на другие языки.
  • В Kotlin цикл for используется в форме: ‹item› в ‹elements›.
  • В Kotlin коллекции делятся на два типа категорий: неизменяемые и изменяемые.

Есть вопросы или мысли? Найди меня в twitter