
В этой статье я научу вас основам Kotlin. Начиная с самого начала мы дойдем до уверернного уровня использования Kotlin. Чтоб когда у вас спросили "Как сделать лямбду функцию" вы на лбу спросившего написали:
val sum: (Int, Int) -> Int = { first: Int, second: Int -> first + second }
Почему Kotlin, а не Java❓
Все просто - этот язык является новой формой Java для Android. В нем решили множество проблем из Java, сделали более приятный синтаксис и для Android он стал работать быстрее. В нем есть все функции из Java, но в Java нет некоторых функций из Kotlin. Поэтому если вы давно хотели изучить Kotlin - вы пришли по адресу! 🧔♀️
Так же этот язык проще многих аналогов (того же Java) от чего начать его использовать куда проще, чем многие другие. Хватит воды - приступаем!
🌟 Переменная:
Переменная простыми словами — это хранилище данных. Сюда можно положить какое-то значение (например, число, строку или другой тип данных). Еще более простой вариант представить себе переменную — подумать о том, что нас окружает. Например, переменной может быть какой-то небольшой мешочек, куда можно положить, к примеру, яблоко. Оно будет там находиться до тех пор, пока мы не решим произвести с яблоком какие-то действия.
С явным указанием типов:
val digit: Int = 0
val string: String = "Hello Wold"
val list: List<String> = listOf("привет", "Тимофей")
Можно также и не указывать тип явно:
val digit = 0
val string = "Hello Wold"
val list = listOf("привет", "Тимофей")
Все переменные которые указываются через val нельзя изменять, чтоб создать переменную, которую можно изменять используйте var
var digit = 0
digit = 10 + 10
Также можно создать переменную, вызвав ее через const val
const val COUNT_SECTOR = 4
const val PRIMARY_LANG = "Ru"
Разница между val и const в том, что const может принимать только примитивные типы данных: Int, String, Float, Char
🌟 Функции:
Функция - это блок, который может выполнять одно конкретное действие, которое Вы укажите.
Функция может принимать параметры, а также может возвращаться или не возвращать результат функции:
Функция с параметрами:
fun sendHello(name: String) {
println("Hello, $name")
}
sendHello("Timofey") // традиционный вызов функции
Вызвав эту функцию и указав значение аргумента в консоли будет выведен результат.
Hello, Timofey
Функция без параметров:
fun sayHello() {
println("Hello World")
}
sayHello()
При вызове этой функции в консоль выводиться следующее:
Hello World
Функции, которые возвращают данные:
Чтоб функция могла возвращать данные ей необходимо указать тип возвращаемых данных и ключевое слово return
fun invoke1(params1: Int, params2: Int) : Int {
return params1 + params2
}
fun another(params: Int): Int { /*...*/ }
another(invoke1(10,200))
Вот так можно использовать подобные функции. На самом деле применений гораздо больше, но мы ограничимся пока этим.
🌟 Циклы и условия:
Цикл — это как повторять одно и то же действие несколько раз
Условие - Если статья понравился, то я подпишусь на автора ;)
Циклы есть следующие: for, while, do while
for (i in 0..10) {
println("-".repeat(20))
println("Значение $i")
println("Возведение в квадрат числа $i: ${i * i}")
}
var index = 0
while (index <= 10) {
println("Index = $index")
println("Возведение в квадрат числа $index: ${index * index}")
index++
}
# ВАЖНО: в цикли while Вы сами контролируете значение вашего index. Если index не менять, то случиться бесконечный вызов цикла и компилятор выведет ошибку!
Есть и другая форма цикла while - do..while:
var i = -0
do{
println(i*i)
i--;
}
while(i > -5)
данном случае вначале выполняется блок кода после ключевого слова do, а потом оценивается условие после while. Если условие истинно, то повторяется выполнение блока после do. То есть несмотря на то, что в данном случае переменная i меньше -5 и она не соответствует условию, тем не менее блок do выполнится хотя бы один раз.
🌟 Классы (ООП)
Вот и подошли к самому интереснему 😊
В Kotlin классы — это основной инструмент для создания объектов.
Объект — это комбинация данных и действий, которые с этими данными можно выполнять. Класс, по сути, является "чертежом", на основе которого можно создавать объекты.
Как объявить класс?
class Person {
var name: String = ""
var age: Int = 0
}
Здесь мы создали класс Person
с двумя свойствами: name
и age
. Когда создается объект класса Person
, мы можем задавать значения для этих свойств.
Создание объектов 🚘
Чтобы создать объект класса, используем ключевое слово new
в некоторых других языках, но в Kotlin оно не требуется:
val person = Person()
person.name = "Маша"
person.age = 25
Теперь объект person
содержит данные: имя "Маша" и возраст 25.
Конструкторы 🧩
Конструктор — это специальная функция, которая вызывается при создании объекта. В Kotlin можно упростить работу с классами, добавив конструктор прямо в объявление класса:
class Person(val name: String, val age: Int)
Теперь при создании объекта мы можем сразу передать значения:
val person = Person("Маша", 25)
println(person.name) // вывод: Маша
Методы в классах 🧩
Классы также могут содержать методы — функции, которые выполняют действия с данными класса. Пример:
class Person(val name: String, val age: Int) {
fun introduce() {
println("Привет, меня зовут $name и мне $age лет.")
}
}
Теперь можно вызвать метод introduce
:
val person = Person("Маша", 25)
person.introduce() // вывод: Привет, меня зовут Маша и мне 25 лет.
Классы в Kotlin позволяют легко организовать данные и действия над ними в одном месте. Благодаря компактному синтаксису, классы становятся удобным инструментом для работы с объектно-ориентированным программированием.
Итог 🍋
Если Вам казалось, что Kotlin - это сложный язык, то начните с самых маленьких шагов к изучению этого языка и вы поймете как он работает и как стать гуру Kotlin )
Это была первая статья из серии "Kotlin". Если у вас остались вопросы или вы недовольны постом - смело комментируйте, критикуйте или поблагодарите за хорошую работу 😎
Если понравилось мое творчество, то смело переходите в мой ТГ канал, там много всего интересного