@kotlin_lang

Страница 785 из 982
Mikhail
01.08.2018
07:57:02
это то, чего реально не хватает инфиксным функциям

Bogdan
01.08.2018
07:59:07
приоритеты
Соглашусь

Dmitry
01.08.2018
08:39:20
ребят а вот вопрос как правильно писать в котлине класс у которых только статические методы?

Google
Dmitry
01.08.2018
08:39:37
типо вспомогательных классов

Andrew
01.08.2018
08:40:57
1) Использовать ключевое слово object 2) Не писать вообще.

Dmitry
01.08.2018
08:41:20
ого 0_0 сколько решений...

Extension functions, top-level functions, companion objects
а с compain object проблем не будет? это ж типо сингл тон? нет?

Pavel
01.08.2018
08:42:18
Dmitry
01.08.2018
08:43:24
идеоматично: top-level или extensions
top level единственное что не нравится, что нельзя через класс обратиться? это ок?

Pavel
01.08.2018
08:43:28
а с compain object проблем не будет? это ж типо сингл тон? нет?
проблем не будет, это если хочется именно как в java , чтобы TextUtils.isEmpty() писать

зачем класс, если тебе нужна просто функция?

Andrew
01.08.2018
08:43:57
а с compain object проблем не будет? это ж типо сингл тон? нет?
По большей части компаньон с проставленными на всех методах @JvmStatic нужен только для получения апишки, которую можно привычным образом использовать из Java. В котлине от этого стоит отвыкать, это не идиоматично.

Google
Andrew
01.08.2018
08:45:18
проблем не будет, это если хочется именно как в java , чтобы TextUtils.isEmpty() писать
TextUtils.isEmpty(myString) сильно длиннее, чем myString.isEmpty, но при этом полезной нагрузки не несёт.

Konstantine
01.08.2018
08:45:48
Dmitry
01.08.2018
08:46:30
ну вот да, я джавист видимо до мозга костей, и понимаю это другой язык и возможно нужно писать по другому

Loljeene
01.08.2018
08:46:38
Стринги плохой пример. Там вообще непонятно как дизайнили и почему часть методов в утилитах

Bogdan
01.08.2018
08:46:44
Тебе за экономию символов деньги платят?)
Ему не платят за дополнительные символы. Оффтоп

Konstantine
01.08.2018
08:47:30
Ему не платят за дополнительные символы. Оффтоп
Если бы код писался 24 на 7 и написание лишних символов действительно афектило производительность - то я бы понял.

Dmitry
01.08.2018
08:47:33
Andrew
01.08.2018
08:47:53
джавистом так привычнее и понятнее =D
Вот я и говорю, для того, чтобы библиотеку удобно было использовать джавистом, компаньоны с @JvmStatic на методах -- ок. Хотя в случае с TextUtils логично писать отдельный файл с чем-то вроде @file:JvmName("TextUtils") fun String.isEmpty(input: String) = ... Для джавки это превратится в привчный Utils-класс, из котлина можно продолжать использовать экстеншн-метод.

Alexandr
01.08.2018
08:47:54
нету

Konstantine
01.08.2018
08:49:00
Вопрос в удобстве, а не в посчитанных символах.
Ты то именно про длину строки написал. ?

Andrew
01.08.2018
08:49:51
Ты то именно про длину строки написал. ?
Потому что пояснять об удобстве человеку, который только начал работать с новым языком, особого смысла нету -- он к этому сам придёт (ну или не придёт). Ему такой довод будет чужд.

Quantum Harmonizer
01.08.2018
08:49:53
Второй вариант больше похоже на ООП
myString.isEmpty? не, там же никакого полиморфизма нет

Pavel
01.08.2018
08:49:58
ещё раз спрошу, ничего плохо в top-level functions нету?
да вроде уже ни раз ответили. Идеоматично top level и extensions. Для интеропа с java - Companion.

Google
Vladimir
01.08.2018
08:50:37
myString.isEmpty? не, там же никакого полиморфизма нет
Этоо лучше, чем static, в котором вообще никакого ООП нет.

Quantum Harmonizer
01.08.2018
08:50:46
Andrew
01.08.2018
08:50:47
top-level ничем не хуже интеропится
Без @file.JvmName это всё-таки диковато из джавки капельку.

Mikhail
01.08.2018
08:50:59
Quantum Harmonizer
01.08.2018
08:51:07
Andrew
01.08.2018
08:51:44
как и SomeClass.Companion.method()
@JvmStatic там тоже не раз озвучен был. О чём мы спорим? От метода зависит же.

Vladimir
01.08.2018
08:52:06
это и есть статик
Я бы не стал отождествлять extension и вспомогательный static-метод. Только полиморфизма не хватает.

Quantum Harmonizer
01.08.2018
08:52:48
Я бы не стал отождествлять extension и вспомогательный static-метод. Только полиморфизма не хватает.
А я стал. Потому что это и есть статик метод. Он от не-статика только отсутствием полиморфизма и отличается.

Vladimir
01.08.2018
08:53:06
Без @file.JvmName это всё-таки диковато из джавки капельку.
Без @Jvm* из Java многое смотрится диковато. Для того они и нужны.

Andrew
01.08.2018
08:56:15
А вот кол-во символов точно новичка должно волновать?
Вам жутко поспорить хочется? Предложите более объективную метрику, которой можно профиты новичку продемонстрировать.

Quantum Harmonizer
01.08.2018
08:57:37
по-моему, самый большой профит — это порядок, в котором слова написаны — isEmpty(str) или str.isEmpty

Andrew
01.08.2018
08:58:30
Хороший аргумент, учту.

Mikhail
01.08.2018
08:59:01
или питон

Quantum Harmonizer
01.08.2018
08:59:30
(-> (replace str x y) trim isEmpty)

Egor
01.08.2018
08:59:37
Хах, берём функциональный язык, делаем из него ООП через пайпы: string |> isEmpty()

Mikhail
01.08.2018
09:00:28
(-> (replace str x y) trim isEmpty)
это типа пайп?

Konstantine
01.08.2018
09:01:35
Вам жутко поспорить хочется? Предложите более объективную метрику, которой можно профиты новичку продемонстрировать.
Спора тут нет. Выгораживаете какой-то невнятный аргумент, чтобы помочь человеку понять зачем ему нужно экстеншн функции имея на руках нормальные аргументы.

Google
Andrew
01.08.2018
09:03:26
Спора тут нет. Выгораживаете какой-то невнятный аргумент, чтобы помочь человеку понять зачем ему нужно экстеншн функции имея на руках нормальные аргументы.
Вы уж простите меня, но ваша агрессия на ровном месте мне совершенно неясна. Один из аргументов, да. Выше был приведен второй, причём почему-то не вами -- вы сосредоточились совершенно на другом.

dimiii
01.08.2018
09:03:30
Как раз тот момент, когда полезно знать java, изучая kotlin

Konstantine
01.08.2018
09:03:37
Admin
ERROR: S client not available

Quantum Harmonizer
01.08.2018
09:04:05
Konstantine
01.08.2018
09:04:50
Вы уж простите меня, но ваша агрессия на ровном месте мне совершенно неясна. Один из аргументов, да. Выше был приведен второй, причём почему-то не вами -- вы сосредоточились совершенно на другом.
Что зацепило к тому и прицепился, второй аргумент об удобстве меня на 100% устраивает, чего к нему цепляться И про аргрессию врете:)

Евгений
01.08.2018
09:04:51
юзаю extension-ы чтоб удобнее была писать типа val sb = StringBuilder() sb.addMyShit("MyShit")

dimiii
01.08.2018
09:06:08
Konstantine
01.08.2018
09:06:48
А можно не мутить, диабета не будет
Для этого и нужно объяснить зачем и почему.

dimiii
01.08.2018
09:07:23
Для этого и нужно объяснить зачем и почему.
Зачем нужен синтаксический сахар? Это должно восприниматься естественно.

Konstantine
01.08.2018
09:08:08
Зачем нужен синтаксический сахар? Это должно восприниматься естественно.
Так дойдем и до естественного восприятия какой-нибудь асмб фигни.

Если бы все всегда воспринималось людьми из коробки - было бы круто.

Konstantine
01.08.2018
09:10:22
Тут вон неновички не всегда понимают зачем им сахар

А - апагогия
Я - яблоко

dimiii
01.08.2018
09:10:54
Тут вон неновички не всегда понимают зачем им сахар
Я всегда думал это троллинг. Тот чувак с анонимными классами и портянками

Igor
01.08.2018
09:12:15
Хах, берём функциональный язык, делаем из него ООП через пайпы: string |> isEmpty()
Кстати ты где-нибудь видел живой пример Си подобного языка с пайпами?

Mikhail
01.08.2018
09:13:42
Google
Egor
01.08.2018
09:14:35
Кстати ты где-нибудь видел живой пример Си подобного языка с пайпами?
Нет ? Хотя я сейчас за дарт берусь, может, там есть

Igor
01.08.2018
09:16:18
Нет ? Хотя я сейчас за дарт берусь, может, там есть
Вот это совпадение я тоже, но пайпа там нет. Там даже дата-класов нет

Egor
01.08.2018
09:17:13
Точнее

Что там есть такого из фич, что есть в котлине, например

Pavel
01.08.2018
09:18:05
Igor
01.08.2018
09:18:06
Эехх(( А что там есть?
Джава с сахаром, async/await и dynamic типом

dimiii
01.08.2018
09:18:35
https://github.com/dart-lang/sdk/issues/16900 я тоже балуюсь с Dart-ом (такой себе однопоточный котлин)

Quantum Harmonizer
01.08.2018
09:18:49
Джава с сахаром, async/await и dynamic типом
dynamic? O_o во что оно компилируется?

Egor
01.08.2018
09:19:02
Мне просто внезапно понадобилось в мультиплатформу, вот я и посмотрел на Флаттер

Да и дарт давно хотел попробовать

Страница 785 из 982