Size: a a a

Kotlin Community

2020 November 23

с#

саша сок #KotlinGang... in Kotlin Community
Andrew Mikhaylov
Чойта? Я себе такое же делал в проекте. Редкий случай, когда перегрузка оператора неплохо ложится.
может быть. у меня просто стадия отрицания оверлоада операторов.
источник

AM

Andrew Mikhaylov in Kotlin Community
Alexander Levin
Ну, примерно из-за того, что у операторов в Котлине есть имена (т.е. "/" это не просто имя функции), поэтому всё, что выходит за пределы деления начинает выглядеть как misuse в Котлине.
Ну сорян, я иногда отклоняюсь от общепринятых практик :)
источник

с#

саша сок #KotlinGang... in Kotlin Community
ну и я делал Path("dir") join "file.txt"
источник

AM

Andrew Mikhaylov in Kotlin Community
Meh, если уж выбирать между оператором деления и инфиксной функцией, я б точно остановился на делении.
Хотя за инфиксные функции я тут тоже уже отхватывал негатив)
источник

D

Denys in Kotlin Community
> Extensions for JDK Path: Path("dir") / "file.txt"

Теперь свои велосипеды можно выбрасывать. :)
источник

LS

Lev Shagalov in Kotlin Community
Вот у меня коллеги часто пишут вещи типа
//Это для js
val Location?.isLocalhost
   get() = this?.host?.contains("localhost") ?: false


Я бы написал метод-расширение.

Вообще разница есть?
источник

AL

Alexander Levin in Kotlin Community
Andrew Mikhaylov
Ну сорян, я иногда отклоняюсь от общепринятых практик :)
Так к misuse в стороннем коде никакой претензии нету. Тот же Arrow уже делал misuse и component1 и not. Но в стандартной либе уже более спорно задавать такой тренд.
источник

AY

Axrorxo'ja Yodgorov in Kotlin Community
Alexander Nozik
I understand that, but I think that generator should take field into account if it is present
I mean this
источник

AM

Andrew Mikhaylov in Kotlin Community
Lev Shagalov
Вот у меня коллеги часто пишут вещи типа
//Это для js
val Location?.isLocalhost
   get() = this?.host?.contains("localhost") ?: false


Я бы написал метод-расширение.

Вообще разница есть?
Разница на концептуальном уровне. Если тело ничего не мутирует, ничего не аллоцирует (тут можно поспорить внутри команды) и работает мгновенно (тоже дискуссионно), тогда есть смысл сделать пропертю. Выше, по-моему, как раз неплохой вариант для проперти.
источник

AM

Andrew Mikhaylov in Kotlin Community
Но как договоритесь, на самом деле.
источник

D

Denys in Kotlin Community
Lev Shagalov
Вот у меня коллеги часто пишут вещи типа
//Это для js
val Location?.isLocalhost
   get() = this?.host?.contains("localhost") ?: false


Я бы написал метод-расширение.

Вообще разница есть?
/api/foo?счастливой_отладки=localhost 😌
источник

LS

Lev Shagalov in Kotlin Community
Denys
/api/foo?счастливой_отладки=localhost 😌
Так host же
источник

D

Denys in Kotlin Community
Lev Shagalov
Так host же
А, верно. А почему не ==?
источник

с#

саша сок #KotlinGang... in Kotlin Community
that's ok. custom getter means that this variable isn't involved in object state
источник

LS

Lev Shagalov in Kotlin Community
Andrew Mikhaylov
Разница на концептуальном уровне. Если тело ничего не мутирует, ничего не аллоцирует (тут можно поспорить внутри команды) и работает мгновенно (тоже дискуссионно), тогда есть смысл сделать пропертю. Выше, по-моему, как раз неплохой вариант для проперти.
А если за рантайм всегда выдает одно и то же, но просто считается, стоит ли делать lazy?
источник

LS

Lev Shagalov in Kotlin Community
Denys
А, верно. А почему не ==?
Потому что у нас много доменов
источник

AL

Alexander Levin in Kotlin Community
Lev Shagalov
Так host же
https://localhost.bandcamp.com/
- не очень локально вроде :)

Но это уже не совсем суть основного вопроса, да :)
источник

LS

Lev Shagalov in Kotlin Community
Alexander Levin
https://localhost.bandcamp.com/
- не очень локально вроде :)

Но это уже не совсем суть основного вопроса, да :)
Ну, я понимаю ваши опасения, но этот метод участвует в подстановке разрабовских логин-паролей, чтобы самим не набирать. Типа test test. Так что даже если сломать - ничего не будет.
источник

LS

Lev Shagalov in Kotlin Community
Alexander Levin
https://localhost.bandcamp.com/
- не очень локально вроде :)

Но это уже не совсем суть основного вопроса, да :)
Можно и подменить я думаю, заставив думать что это прям локалхост, но ничего не даст.
источник

AM

Andrew Mikhaylov in Kotlin Community
Alexander Levin
https://localhost.bandcamp.com/
- не очень локально вроде :)

Но это уже не совсем суть основного вопроса, да :)
Вы намекаете на то, что проще сходить в DNS и получить оттуда 127.*? :)
источник