
Shushper
02.02.2017
18:59:15
за пределами for у меня нет к ней доступа

Igor
02.02.2017
18:59:45
юзай while

Андрей
02.02.2017
19:02:41
в данном примере j в ифе можно присвоить значение индекса

Михаил
02.02.2017
19:03:05

Google

Андрей
02.02.2017
19:04:37
хотя в примере реално indexOf делается. так что еще и от задачи зависит какие под нее альтернативы подобрать можно.

Shushper
02.02.2017
19:06:48
Но все равно это копирование значения индекса в другую переменную. В итоге, получается, нельзя использовать заранее объявленную переменную в качестве индекса в for?
юзай while
Кстати, оказывается совет с while вполне годный. Спасибо!

Dmitry
03.02.2017
11:55:50
продублирую вопрос
inline fun <reified T> cls(): Class<T> = ?
возможно ли такое реализовать?

The mirror
03.02.2017
11:58:16
Хм, а разве итак нельзя в рантайме вытащить объект класса инстанса и сделать с ним все что угодно?

Михаил
03.02.2017
11:59:02

Руслан
03.02.2017
12:00:18
inline fun <reified T : Any> cls(): Class<T> = T::class.java
а что так не работает?

Dmitry
03.02.2017
12:15:19
чтоб такое делать, нужно дополнительным параметром передавать или объект, или класс. хочу обойтись без них
конкретная задача - хочу сократить запись
val field: Field<SomeType> = DSL.field(DSL.name("someName"), SomeType::class.java)
до
val field: Field<SomeType> = "someName".asField()

Google

Dmitry
03.02.2017
12:15:42
внезапно не работает T::class.java
как тут исходники форматировать?

balolam
03.02.2017
12:17:18
inline fun <reified T : Any> T.cls(): Class<T> = T::class.java
Работает, проверил. Внес лишь правку одну

Dmitry
03.02.2017
12:19:00
мне нужен экстеншн-метод от строки, а не от Т

balolam
03.02.2017
12:19:45
inline fun <reified T : Any> T.cls(): Class<T> = javaClass
Та оно для всего работает, это дженерик!

Руслан
03.02.2017
12:20:15
но тогда у тебя T = String)

Dmitry
03.02.2017
12:20:40
inline fun <reified T> String.cls(): Class<T> = ?
усложним задачу)

balolam
03.02.2017
12:21:10
Четко опиши задачу

Dmitry
03.02.2017
12:23:27
ок. нужна реализация метода
inline fun <reified T> cls(): Class<T> = ?
где cls() не является extension-методом

Виталий
03.02.2017
12:24:35
тогда как ты планировал делать так
"someName".asField()
?

balolam
03.02.2017
12:24:42
inline fun <reified T : Any> String.asField() = DSL.field(DSL.name(this), T::class.java)

Руслан
03.02.2017
12:25:34
Дима, я понимаю что вся проблема с тем как из T сделать соответвующий тип?

Dmitry
03.02.2017
12:25:42
ага

balolam
03.02.2017
12:26:10

Google

Dmitry
03.02.2017
12:26:40
причем, как ты мог заметить, самый очевидный вариант
inline fun <reified T : Any> cls(): Class<T> = T::class.java
не работает

balolam
03.02.2017
12:27:40
Он работает,

Dmitry
03.02.2017
12:28:07
а где у меня в условии T.cls()?

balolam
03.02.2017
12:28:27
и что такое дженерик метод?

Dmitry
03.02.2017
12:28:41
да

balolam
03.02.2017
12:28:49
Но понятие "экстеншена" ты употребил инверсивно.
Вытаскивает

Dmitry
03.02.2017
12:34:12
Вот это то, что надо. Спасибо

balolam
03.02.2017
12:34:49
Дак я сразу написал же. Единственное, что всех сбило, это то что ты хочешь экстеншен, а пишешь, что это должен быть не экстеншен.

Dmitry
03.02.2017
12:36:36
Меня сбило то, что первый вариант был экстеншеном от Т. А это могло влиять на поведение
А на ': Any' я не обратил внимания

Quantum Harmonizer
03.02.2017
15:52:29
Скажите, что я делаю не так?
println(c.time)
println(SimpleDateFormat("dd MMMM YYYY г. в HH:MM", Locale.getDefault()).format(c.time))
Sat Dec 31 12:00:00 MSK 2016
31 декабря 2017 г. в 12:12

Dmitry
03.02.2017
15:53:55
мб HH:mm?

Руслан
03.02.2017
15:54:11
+1

Quantum Harmonizer
03.02.2017
15:54:17
мб, только вот год не тот)

Михаил
03.02.2017
15:55:40
Объясните. Нормально, что с сервера приходит дата типа 2016-00-00?

Quantum Harmonizer
03.02.2017
15:55:50
мб HH:mm?
Да, спасибо, минуты исправил. А с годом фигня какая-то.

Руслан
03.02.2017
15:55:55
@Harmonizr покажи что за c

Google

Quantum Harmonizer
03.02.2017
15:56:03

Михаил
03.02.2017
15:56:18
В чем прикол?)

Руслан
03.02.2017
15:56:24

Quantum Harmonizer
03.02.2017
15:56:37
@Harmonizr покажи что за c
Ещё один прикол в том, что с должен быть 1 января.
val c = Calendar.getInstance()
c.set(Calendar.DAY_OF_YEAR, 0)
c.set(Calendar.HOUR_OF_DAY, 0)
c.set(Calendar.MINUTE, 0)
c.set(Calendar.SECOND, 0)
c.set(Calendar.MILLISECOND, 0)
println(c.time)
c.add(Calendar.HOUR, 12)
println(c.time)
println(SimpleDateFormat("dd MMMM YYYY г. в HH:mm", Locale.getDefault()).format(c.time))

Руслан
03.02.2017
15:56:46
но чтобы день...

Boris
03.02.2017
15:57:01
dd MMMM yyyy г. в HH:mm
отлично работает, здравствуйте

Quantum Harmonizer
03.02.2017
15:58:05
Точно, спасибо

Руслан
03.02.2017
15:58:12
в том числе поэтому в новом коде за SimpleDateFormat нужно бить по рукам

Boris
03.02.2017
15:58:32
да, только java.time, только хардкор

Quantum Harmonizer
03.02.2017
15:58:35
Остался один вопрос: почему нулевой день — это 31 декабря?

Михаил
03.02.2017
15:58:45
Парсит так

Quantum Harmonizer
03.02.2017
15:58:55

Boris
03.02.2017
15:59:04
соболезную

Quantum Harmonizer
03.02.2017
15:59:15
Парсит так
так не парсит, я явно отматываю календарь в нулевой день

Руслан
03.02.2017
15:59:44
или тащить дорого такую либу

Quantum Harmonizer
03.02.2017
16:01:30

Михаил
03.02.2017
16:02:09
За то чтобы спарсить дату 6к?)))))
Неплохо

Google

Quantum Harmonizer
03.02.2017
16:02:28
The first day of the year has value 1.
ничоси!

Boris
03.02.2017
16:03:11
/**
* Field number for <code>get</code> and <code>set</code> indicating the day
* number within the current year. The first day of the year has value 1.
*/
public final static int DAY_OF_YEAR = 6;
ой, тута уже написали

Виталий
03.02.2017
16:04:13

Quantum Harmonizer
03.02.2017
16:11:53

Boris
03.02.2017
16:23:01
а кто-то в проде котлин использует?

Руслан
03.02.2017
16:23:58
Пишу для прода с релиза)

Boris
03.02.2017
16:24:22
для андроида?

balolam
03.02.2017
16:26:13
А в чем страх. Вы пишите в IDE частично написанной на Kotlin, как и другие продукты JetBrains

Руслан
03.02.2017
16:28:53
Нет, для бэкенда
Ну и сейчас втащил в другой проект, тоже бекенд
Потому что нету никаких сил писать на java

Boris
03.02.2017
16:29:31
? понимаю
не так-то это просто — убедить людей, что это удобно и вообще лучше джавы

Sergey
03.02.2017
16:44:36
да ладно
ну только если это не @dmsol

Igor
03.02.2017
17:14:32
а кто-то в проде котлин использует?
Да - игру пишим (может когда выйде похвастаюсь ссылью).
В принципе даже получается много кода писать в функ. стиле, но конечно не ядро игры, оно OOP.
Жду релиза 1.1 что бы async/await и typealias затащить.

Sergey
03.02.2017
17:16:43
чисто интересно, почему не скала?)