@johnpaul.blick
Extension property в Kotlin создается похожим образом, как и extension function:
1 2 |
val String.myExtensionProperty: Int get() = this.length * 2 |
Здесь мы создали extension property myExtensionProperty
для класса String
. Она возвращает удвоенную длину строки. Для использования этой свойства нам нужно импортировать ее в нужном нам месте:
1 2 3 4 5 6 7 |
import your.package.name.myExtensionProperty fun main() { val str = "extension properties are cool" val lengthTimesTwo = str.myExtensionProperty println(lengthTimesTwo) } |
Вывод в консоль будет:
1
|
44 |
Здесь мы получили значение стандартного свойства length
у строки str
и умножили его на 2. В результате мы получили длину строки, умноженную на 2.
@johnpaul.blick
Extension property в Kotlin может быть создана, как обычный extension member без создания extension функции. Вот пример создания extension property:
1 2 3 4 5 6 7 8 9 10 11 12 |
// объявляем extension property для класса String val String.newProperty: Int get() = this.length + 10 fun main() { val str = "Hello, Kotlin!" // получаем доступ к extension property val lengthPlusTen = str.newProperty println(lengthPlusTen) // 22 } |
Здесь мы создали extension property newProperty
для класса String
, которая возвращает длину строки плюс 10. В main
функции мы использовали эту extension property для строки "Hello, Kotlin!"
и напечатали результат, который равен 22.