Как создать extension property в Kotlin?

Пользователь

от johnpaul.blick , в категории: Другие , 2 года назад

Как создать extension property в Kotlin?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от aaron_armstrong , 2 года назад

@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.

Пользователь

от dayna , 7 месяцев назад

@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.