@kotlin_lang

Страница 496 из 982
Kirill
20.01.2018
18:56:16
Внутри лямбды переданной в forEach можно получить номер итерации?

Bogdan
20.01.2018
18:56:51
вроде есть аоричьИндекс

forEachIndex

Kirill
20.01.2018
18:58:11
Да.

Google
Kirill
20.01.2018
18:58:13
Спасибо.

Kirill
20.01.2018
19:07:32
Внутри лямбды переданной в forEach можно получить номер итерации?
не сочти за грубость, но тут всё есть: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/index.html очень удобно делать ctrl+f по этому списку

Alexei
20.01.2018
19:10:04
Ребята хотелось бы услышать аргументированые мнения по следущей теме: Стоит ли избегать функций в кт в рамках соего кода(не считаем тех что являются расширениями)?

аргумент в пользу избегания это то что класы проще тестить и их можно связывать с помощью ДИ(патерн не обязательно спринг)

Alexei
20.01.2018
19:13:27
спорить сложно ибо я не знаю точной разницы между функцией(не методом) и процедурой

@angmarr не мог бы бросить почитать/написать об этом?

Mikhail
20.01.2018
19:16:58


Студия подчеркивает, но gradle собирает...

Roman
20.01.2018
19:18:13
Это известный баг, переимпорт проекта поможет.

Google
Roman
20.01.2018
19:19:02
Наверняка есть какой-то более простой способ, но я его не знаю.

Artem
20.01.2018
19:20:52
А в чем прикол gradle kotlin dsl этого?)

Igor
20.01.2018
19:21:20
@angmarr не мог бы бросить почитать/написать об этом?
Для меня функци == чистая функция (те дертминированная и без сайд эффектов см wikipeda/чистая_функция) В них я ничег плохого не вижу, ибо они не меняют глобальное состояние и их результат зависит только от параметров. Все остальное это “продцеры”, как вот в си были, которые меняют глобальный стейт или свои аргументы. Это возвращает нас к процедурно-императивному стилю программирования, который конечно надо избегать. Если в вашем коде, такие “не методы”, то точно лучше их не использовать, а сконцентрироваться на стандартном ООП с солидом и DI

Mikhail
20.01.2018
19:23:40
А в чем прикол gradle kotlin dsl этого?)
Автокомплит + поддержка идеей

И чуть более понятная магия

Artem
20.01.2018
19:24:34
Понял, спасибо

Andrey
20.01.2018
19:33:27
Добрый вечер! Помогите, пожалуйста, с коммандлайновой джавой. Есть файл main1.kt: import org.json.JSONObject fun main(args: Array<String>) { val obbj = JSONObject() println("Hello!") } Компилирую так: kotlinc -classpath json.jar main1.kt -include-runtime -d main.jar При старте джава выдает ошибку: java -classpath json.jar:. -jar main.jar Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics at Main1Kt.main(main1.kt) Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 1 more Перепробовал кучу вариантов с classpath. Единственное, что помогло, это засунуть руками классы из json.jar в main.jar Джава игнорирует classpath если запускается с -jar?

Andrey
20.01.2018
19:39:48
не то скопировал

Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject at Main1Kt.main(main1.kt:5)

Bogdan
20.01.2018
19:40:11
"При старте джава выдает ошибку: java -classpath json.jar:. -jar main.jar"

после джара нужно указать майн, или в манивест прописать

Andrey
20.01.2018
19:41:01
котлин прописывает

Bogdan
20.01.2018
19:41:11
посмотри рукми в джар

хотя да

ругается на джисон

Dibro
20.01.2018
19:43:38
в любом случае, котлин здесь не причем, пиши в @jvmchat

Bogdan
20.01.2018
19:45:32
вроде поумочнанию просканирует папку с main.jar

Google
Bogdan
20.01.2018
19:46:26
попробуй без класспатч
или укажи ПАПКУ, а не файл

Andrey
20.01.2018
19:47:14
пробовал, не работает

Bogdan
20.01.2018
19:51:41
а файлик json.jar рядом с майн джар?

Andrey
20.01.2018
19:58:17
Да

SkullzBoy
20.01.2018
20:00:53
I have a list with names that start with a capital letter (France) and i am trying to compare user input with the list, supposing user inputs everything in case sensitive (france) how do i make the program know that (France and france) are the same thing even if input is case sensitve

Fag
20.01.2018
20:01:30
Make the input and the other string both the same case

So, make them both FRANCE or france

SkullzBoy
20.01.2018
20:01:57
Ohhk thanks

Fag
20.01.2018
20:02:02
No problemo

SkullzBoy
20.01.2018
20:03:20
But i still have a doubt....i am reading a .txt file, how do i force it to read everyhting in capital?

Alex
20.01.2018
20:05:19
Ребята, по ktor еще вопрос есть. Как мне отправить статические html и css по GET-запросу?

Andrey
20.01.2018
20:05:23
you should not read everything in capital, you should make strings the same case when you compare them

Alex
20.01.2018
20:05:52
static("/") { default("client/index.html") default("client/css/index.css") } Пробовал так, и как еще только не пробовал

Html отправляется, css - нет

SkullzBoy
20.01.2018
20:07:56
Thanks!

And what if a word on the list has accent like ã and the user inputs only a

Quantum Harmonizer
20.01.2018
20:17:10
And what if a word on the list has accent like ã and the user inputs only a
Check out how toLowerCase() behaves with such letters. You may also try toLowerCase overload accepting Locale.

SkullzBoy
20.01.2018
20:19:53
Doesnt show anything

Google
Andrey
20.01.2018
20:20:56
Replace accents, then compare :)

Quantum Harmonizer
20.01.2018
20:21:12
lol, too complex

SkullzBoy
20.01.2018
20:21:21
I would... .txt has about 100 lines

Quantum Harmonizer
20.01.2018
20:21:22
in Unicode, this called 'decomposition'

Alex
20.01.2018
20:21:42
SkullzBoy
20.01.2018
20:21:47
Would take forever...and list could grow...so even more time replacing accents

Quantum Harmonizer
20.01.2018
20:23:47
Из каталога
Я так делаю. static("/") { files("./path/to/dir") }

Alex
20.01.2018
20:25:01
Сейчас попробую, спасибо

У меня в моем html есть линк на css

Нормуль подхватит?

Quantum Harmonizer
20.01.2018
20:26:31
ну если линк указывает туда, куда надо, то норм)

Andrey
20.01.2018
20:26:43
Would take forever...and list could grow...so even more time replacing accents
Think you should write a program first, and only then try to optimize it :)

Alex
20.01.2018
20:38:15
Я так делаю. static("/") { files("./path/to/dir") }
Все равно не помогает ?

Папка client, в ней два файла - index.html и index.css

Quantum Harmonizer
20.01.2018
20:38:53
Все равно не помогает ?
Тут уж всё зависит от того, относительно чего путь и как он резолвится. Можно попробовать продебажить.

Alex
20.01.2018
20:39:32
А что дебажить-то?

Пробовал так : static("/") { files("./client/index.html") files("./client/index.css") } И так : static("/") { files("./client") files("./client") } В первом случае отсылался html и пустой css, во втором пустой html

Quantum Harmonizer
20.01.2018
20:42:09
Пустой или 404?

Alex
20.01.2018
20:42:14
404

Он как бы есть, но его и нету

Google
Alex
20.01.2018
20:42:54
Вот так

Quantum Harmonizer
20.01.2018
20:42:59
Если у тебя уже что-то повешено на, допустим, /{smth}/, то статик не отработает.

Alex
20.01.2018
20:43:00


Quantum Harmonizer
20.01.2018
20:43:12
ещё, у меня стоит слэш после статического каталога

Alex
20.01.2018
20:43:17


Quantum Harmonizer
20.01.2018
20:43:21
т. е. ./client/

а публичный путь я себе сделал s/t/a/t/i/c чтоб точно не пересёкся с другими обработчиками.

Alex
20.01.2018
20:44:17
Мдя, чото сложновато оказалось отослать весь фронт при первом заходе на страницу ?

Quantum Harmonizer
20.01.2018
20:46:12
https://github.com/JavaneseOnline/JavaneseBackend/blob/master/src/main/kotlin/online/javanese/JavaneseServer.kt#L267 вот как у меня сделано, где it = /s/t/a/t/i/c

Alex
20.01.2018
20:46:32
т. е. ./client/
У меня 404 на все, даже на html

Спасибо, сейчас гляну ?

По ходу, прийдется стили инлайнить ?

Потому что у тебя немного другой кейс

А мне надо, чтоб html отрендерился и подхватил стили

По ходу, надо ташить спринг, а то по привычному не выходит с ктором ?

Не, заработало, слава Богу

@Harmonizr пасиба за помощь ?

Quantum Harmonizer
20.01.2018
21:07:33
Alex
20.01.2018
21:08:31
Я нашел пример с вебсокетами и сделал как там. Весь фронт запихал в папку resources, и сделал так : static("/") { defaultResource("index.html", "client") resources("client") }

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