@kotlin_lang

Страница 525 из 982
Dibro
02.02.2018
10:58:25
да, действительно
если в инлайне используется reified — его из джавы не видно даже

Dibro
02.02.2018
10:59:38
...или писать без ошибок

Google
Igor
02.02.2018
11:00:02
Еще можно println отлаживать ???

Anatoliy
02.02.2018
11:03:55
...или писать без ошибок
Ну я смотрю тут боги есть, ошибок не делают)

Vitalii
02.02.2018
11:04:38
Ну да, и весь чужой код всегда покрыт тестами.

Anatoliy
02.02.2018
11:05:18
Все это только в минус котлину. Хотелось бы все же не опускаться до уровня JavaScript )

Просто не надо дебажить, надо тесты писать.

...или писать без ошибок

Еще можно println отлаживать ???

Anatoliy
02.02.2018
12:12:31
Quantum Harmonizer
02.02.2018
12:13:26
А смысл тогда в инлайн-функциях?
Чтоб инлайнились. Какой вопрос — такой ответ.)

Anatoliy
02.02.2018
12:14:55
????

Просто ситуация такая, что половина проекта переведена с джавы на котлин с использованием инлайна который может прерывать основную функцию. Причем при переводе код был оптимизирован) Теперь же выясняется, что подебажить его не представляется возможным) Перепиливать кучу кода из-за логики возвратов что-то совсем не хочется)

Google
Sergey
02.02.2018
12:17:24
вроде как hotspot не умеет инлайнить лямбды, поэтому даже без nonlocal returns и reified дженериков смысл есть...

Anatoliy
02.02.2018
12:20:31
Запилить функцию breakpoint(id: Int)

Запилить функцию breakpoint(id: Int)
Всем костылям КОСТЫЛЬ !!! ?

Правда еще не факт, что заработает, надо пробовать)

Andrew
02.02.2018
12:31:21
Тогда уже id: String, чтобы при расстановке условных бряков номера не вспоминать. Был у меня один проект (Java, Android), на котором прошлый разработчик в качестве тегов в своём кастомном логгере использовал числа. АдЪ.

А в целом спасибо за идею, сегодня как раз её опробую, вероятно.

В колл-стеке инлайн-функций же ж нету, само собой, да?

https://github.com/JetBrains/kotlin-native/pull/1280 ^_^

Sergey
02.02.2018
13:02:05
интересно, а Telegram X на котлине написан?

Денис
02.02.2018
13:02:16
А исходники часом не открытые?

Sergey
02.02.2018
13:02:22
не могу найти

Quantum Harmonizer
02.02.2018
13:02:42
Sergey
02.02.2018
13:02:46
нашел только под ios и старый андроид

Денис
02.02.2018
13:03:04
The source code for Telegram X will be released eventually, no later than the first official public release of the app.

Вроде как на свифте

Но это не точно

Quantum Harmonizer
02.02.2018
13:03:27
А можно подробней про проблемы с дебагом? Есть ссылка на открытую http://kotl.in/issue ?
мне казалось, что дебаг в заинлайненных функциях вобще не работает. (проверял на андроиде)

Google
Quantum Harmonizer
02.02.2018
13:03:36
Вроде как на свифте
ну мы же не про iOS :)

Roman
02.02.2018
13:05:10
Когда-то давно были баги на эту тему в дебаггере, но мне казалось что давно уже все закрыты. Я давно проблем с обычными inline функциями не испытывал, кроме того, что F7/F8 не всегда интуитивно себя ведет. Поэтому и спрашиваю.

Quantum Harmonizer
02.02.2018
13:06:39
вот есть, например https://youtrack.jetbrains.com/issue/KT-18669

Roman
02.02.2018
13:08:26
Ага. Понятно. Это что-то adroid-specific (поэтому я не натыкаюсь). Но тоже вроде работа ведется.

Виталий
02.02.2018
13:19:58
есть модификатор доступа по пакету функции в файле ?

protected запрещено использовать в объявлениях "высокого уровня". :(

Quantum Harmonizer
02.02.2018
13:21:47
есть модификатор доступа по пакету функции в файле ?
Нет. Ближыйший — internal, доступ в модуле.

Виталий
02.02.2018
13:22:15
модуль я так понимаю это всё

Quantum Harmonizer
02.02.2018
13:22:38
Что «всё»?

Виталий
02.02.2018
13:23:39
так, а что такое модуль, если public видит везде ?

думал модуль это основная папка где весь код, рядом можно создать другую папку (модуль)

короч мне нужны функции, на каждый файл 1 функция в одном пакете, ято бы функции вызывать можно было только с этого пакета - это ни как что ли ?

это что же придеться функции именовать как в старые добрые L1,L2,L3 ??? ? если функций гора и в файле с классом они как бэ громоздкость создают - потому просто класс и функции хотелось бы в один пакет

balolam
02.02.2018
13:47:30
На уровне файла private будет работать, на уровне пакета - увы нет(

А в чем проблема то?

У вас спокойно могут быть функции с одинаковыми именами в разных файлах, просто при импорте укажите какую затягиваете и откуда

balolam
02.02.2018
13:49:52
+++, хотя странно если будут на уровне одного пакета с одним именем... выходит что уже изначально что-то пошло не так у вас)

Google
Anatoliy
02.02.2018
14:02:30
А можно подробней про проблемы с дебагом? Есть ссылка на открытую http://kotl.in/issue ?
Про проблему можешь выше своего сообщения почитать мои комменты и ответы на них. Открытой задачи не искал, решил тут поначалу спросить)

Это в андроиде или на JVM?
Не понял вопроса

Quantum Harmonizer
02.02.2018
14:04:22
Не понял вопроса
Брейкпоинты не работают при запуске в андроиде? Или в JVM?

Igor
02.02.2018
14:04:48
А как в котлин перевести то, что на java выглядит как Map<? extends SomeClass, ? extends SomeOtherClass>?

Igor
02.02.2018
14:05:26
это неудобно ((
А зачем вам много функций вне классов еще и похожими сигнатурами?

Anatoliy
02.02.2018
14:06:23
Брейкпоинты не работают при запуске в андроиде? Или в JVM?
Приложение под отладчиком запускается на реальном устройстве (не эмуль), если вы про это

Виталий
02.02.2018
14:06:27
чет запутался - есть класс/файл, в этом же файле определены функции вне класса, при наследовании этог класса функции же не будут дублироваться , правиль - в этом и фишка я полагаю ?

Vitalii
02.02.2018
14:06:42
Приложение под отладчиком запускается на реальном устройстве (не эмуль), если вы про это
Ответ будет Андроид. Имелось в виду, не серверное/десктопное приложение, которое на JVM работает, а Android-приложение, что из этого.

Anatoliy
02.02.2018
14:07:25
Андроид то есть.
Ну так и на эмуле Андройд)

Виталий
02.02.2018
14:07:33
Quantum Harmonizer
02.02.2018
14:07:45
Ну так и на эмуле Андройд)
а на десктопе или сервере — JVM, это разные окружения

Виталий
02.02.2018
14:08:03
Класс или файл?
а есть разница ? если создам файл и в нем класс ?

или сразу клаас

и там и там я могу функции вне класса писать

Quantum Harmonizer
02.02.2018
14:08:37
а есть разница ? если создам файл и в нем класс ?
ну, можно создать файл без класса, можно несколько классов в файле

Виталий
02.02.2018
14:08:52
мне про наследование

функции же не пойду размножаться если они объявляне ыне класса но в одном файле с классом

Google
Виталий
02.02.2018
14:09:31
пр наследовании класса

впринцыпе я уверен что функции вне класса не будут дублиорваться, так как они не имеют доступа к функциям в классе

так вот мне что бы в файле/классе не плодить 100500 строк я хочу функции создавать в отдельных файлах в одном пакете с этим классом, и что бы к этим функциям не было дстпа с других пакетов... жаль что так нельзя

Anatoliy
02.02.2018
14:14:54
а на десктопе или сервере — JVM, это разные окружения
Нэ, на эмуле тоже не срабатывают точки останова. Мало того, они не везде себя одинаково ведут. В экстеншенах брейкпойнт срабатывает, если был установлен непосредственно в момент выполнения байткода (когда остановились где-то пораньше) В инлайне вообще не работает(

stas
02.02.2018
14:16:15
Подскажите как быстро проверить является ли строка числом?))) понимаю, что вопросы вроде бы и банальные, но хочется сделать это как можно более лаконично)

Виталий
02.02.2018
14:17:35
это я короч типа оптимизация памяти, что бы в наследуемом классе были только параметры, а все необходимые функции классу при наследовании были созданы только один раз. типа class AAA{ fun update() { horizontalMover(this) verticalMover(this) tileScale(this) } } и вот эти методы в update которые они вне класса. короче.... ))))

stas
02.02.2018
14:17:44
.toIntOrNull() != null
уго Kotlin и об этом позаботились О_О

Виталий
02.02.2018
14:18:28
я сам в шоке

но я хочу модификатор доступа по пакету для функций ))

Vadim
02.02.2018
14:24:01
В котлине вроде можно было избежать вложенности классов моделей ? У меня есть дата класс: data class Attach(val session_id: Long, val data: ResponseData) Могу ли я не делать ResponseData в отдельном файле, а как-то сделать всё в Attach ?

в ResponseData у меня еще будут вложенные объекты... Мне нужно всю цепочку описывать отдельно и плодить куча классов моделей?

Vadim
02.02.2018
14:25:51
Вообще не понятно, что нужно и в чём вопрос.
У меня есть модель: data class Attach(val session_id: Long, val data: ResponseData)

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