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