@kotlin_lang

Страница 253 из 982
...•°•.•°
19.07.2017
17:36:50
Ok

Понял

Спасибо

Quantum Harmonizer
19.07.2017
18:08:59
Ranges это for(;;)
Без знаков препинания непонятна суть. Это вопрос?

Google
Alexey
19.07.2017
18:09:53
...•°•.•°
19.07.2017
18:25:46
You
19.07.2017
23:00:28
@HeapyHop бань Алису, уже в кучу чатов заселилась

Alina
20.07.2017
05:54:30
@Arterialist странный подход :)

Михаил
20.07.2017
07:37:32
А в котлине есть какой-то метод над коллекциями вроде .forEach() или .map(), но чтобы он не изменял элементы, а лишь делал с их помощью какие-то действия (не влияющие на исходный массив) и возвращал бы исходный массив?



Павел
20.07.2017
07:45:10
.apply { forEach{}}

Михаил
20.07.2017
07:45:29
.apply { forEach{}}
много слов )



Павел
20.07.2017
07:46:04
так а чем withEach не подходит раз он есть?

Михаил
20.07.2017
07:46:30
так а чем withEach не подходит раз он есть?
withEach я сам написал пару минут назад )

Павел
20.07.2017
07:46:45
ну так и норм, это же и есть бонус котлина

Михаил
20.07.2017
07:47:10
ну так и норм, это же и есть бонус котлина
ну так-то да, просто хотел узнать, вдруг из коробки что-то такое уже есть

Google
Evgeny
20.07.2017
07:47:44
onEach есть который вроде то что надо делает



Михаил
20.07.2017
07:48:40
onEach есть который вроде то что надо делает
ага, как раз про него и хотел узнать, спасибо ??

Oleg
20.07.2017
07:58:23
Спасибо



Ivan
20.07.2017
08:00:18
я так понимаю, что это аналог peek в стрим апи джавы?

Igor
20.07.2017
08:10:22
Только он не ленивый

Boris
20.07.2017
08:12:58
наверняка у Sequence есть такой же только ленивый

public fun <T> Sequence<T>.onEach(action: (T) -> Unit): Sequence<T> { return map { action(it) it } }

Quantum Harmonizer
20.07.2017
08:19:32
Ivan
20.07.2017
08:22:49
Anton
20.07.2017
09:29:31
пацаны а джава то выйдет 27?

Boris
20.07.2017
09:30:23
893 человека сейчас посмотрело на тебя с подозрением

Igor
20.07.2017
09:32:32
А ещё 14 куда делись ? (нас же 907)

Oleg
20.07.2017
09:32:47
14 слепые?

Anton
20.07.2017
09:34:10
14 тоже интересует данный вопрос

Andrew
20.07.2017
09:35:04
Вечные два процента Java

Михаил
20.07.2017
09:36:50
А ещё 14 куда делись ? (нас же 907)
14 видимо пришли из js

Anton
20.07.2017
09:55:33
может их насильно заставляют на жаве писать, хочешь котлин, а коллектив не хочет

Boris
20.07.2017
10:23:28
14 это статистическая погрешность

Google
Evgeniy
20.07.2017
10:59:29
Привет.

@angmarr Я решил попробовать Kotlin сначала. :)

Igor
20.07.2017
11:22:31
@angmarr Я решил попробовать Kotlin сначала. :)
Круто, материалы надеюсь знаешь где брать

Evgeniy
20.07.2017
11:22:43
Костя
20.07.2017
11:35:19
Всем привет, а подскажите есть ли у массива функция, чтобы сравнивать элемент со следующим, не используя стандартный цикл

Михаил
20.07.2017
12:07:42
у меня одного после хоть какого-нибудь изменения в проекте вся кодогенерация ломается и приходится клин-ребилд проекта делать?

Igor
20.07.2017
12:09:44
у меня одного после хоть какого-нибудь изменения в проекте вся кодогенерация ломается и приходится клин-ребилд проекта делать?
Из за кодогенерации litho, clean&rebuild делаю после каждого переименования методов или классов

Михаил
20.07.2017
12:10:10
мне хватает датабиндинга и дагера, чтобы все ломалось((

Igor
20.07.2017
12:10:57
Тем что это React на Java (ты же знаешь плюсы реакта на вебе). Можешь основные плюсы тут почитать http://fblitho.ru (или в оригинале на http://fblitho.com )

Костя
20.07.2017
12:13:18
звучит как описание reduce. что в итоге нужно получить?
Посчитать количество изменений элементов массива, примерно так

? animufag ?
20.07.2017
12:13:55
Посчитать количество изменений элементов массива, примерно так
значит у тебя есть два массива, старый и текущий?

Костя
20.07.2017
12:15:01
яя неправильно выразился наверное, https://try.kotlinlang.org/#/Examples/Problems/Runs/Runs.kt

? animufag ?
20.07.2017
12:15:42
@angmarr немного запутывает то что ты отредактировал комментарий)

Костя
20.07.2017
12:16:01
тут ссылка на пример, как бы можно всегда решить в лоб, тупо цикл и сравнение, но я вот ищу более красивое решение, может метод для разбиения коллекции, или вот fold ещё и в нём сравнивать 2 элемента и считать сколько раз не совпали

Igor
20.07.2017
12:17:06
Михаил
20.07.2017
12:21:49
у меня одного после хоть какого-нибудь изменения в проекте вся кодогенерация ломается и приходится клин-ребилд проекта делать?
У меня с одним лишь даггером иногда ломается кодогенерация, но это всегда из-за того, что у меня для аннотаций для даггера используются KClass'ы (при билде они порой не успевают определиться до генерации кода и вылазят ошибки c NonExistentClass)

Google
Костя
20.07.2017
12:29:21
ну да фолдом можно обойтись, но некрасиво выходит.
а первый параметр в fold это index в массиве с которого начинается обработка ? верно, я понимаю

? animufag ?
20.07.2017
12:30:10
начальное значение

Admin
ERROR: S client not available

? animufag ?
20.07.2017
12:30:38
например если ты ищешь сумму то задаёшь начальное 0, если произведение 1

Костя
20.07.2017
12:45:31
ну да фолдом можно обойтись, но некрасиво выходит.
а более красивого решения не найти для такой задачи ? (

? animufag ?
20.07.2017
13:10:36
а более красивого решения не найти для такой задачи ? (
listOf(1, 2, 3).fold(Pair(0, 1), {(count, prevItem), item -> Pair(if (prevItem != item) count + 1 else count, item)}) listOf(1, 2, 3).fold(emptyList<Int>(), {list, item -> if (list.last() == item) list else list + item}).size

Костя
20.07.2017
13:20:34
спасибо, я чутка модифицировал первый пример, и всё ок

? animufag ?
20.07.2017
13:22:04
да некрасиво всё равно

Igor
20.07.2017
13:22:29
Надеюсь у вас коллекции маленькие ? и это не ondraw

? animufag ?
20.07.2017
13:22:47
была бы функция чтобы 2 элемента сравнивать

Костя
20.07.2017
13:23:29
Надеюсь у вас коллекции маленькие ? и это не ondraw
а если коллекция большая, как лучше поступить ?

через цикл и счетчик какой-то ?

? animufag ?
20.07.2017
13:24:24
Надеюсь у вас коллекции маленькие ? и это не ondraw
ой, лол, все в бд лазят в ui треде, а ты аллокации считаешь

Quantum Harmonizer
20.07.2017
13:28:13
Boris
20.07.2017
13:30:42
fun runs(array: IntArray): Int { return if (array.isEmpty()) 0 else array.pairs().fold(1) { count, (prev, next) -> if(prev != next) count + 1 else count } } private fun IntArray.pairs() = zip(slice(1 until size))

Igor
20.07.2017
13:31:27
а если коллекция большая, как лучше поступить ?
Императивно с циклами, выделив нужное кол-во памяти один раз в начале (но это совсем др история). Да и не надо спешить, сначала надо спрофилировать, потом оптимизировать.

Boris
20.07.2017
13:52:18
fun runs(array: IntArray): Int { return if(array.isEmpty()) 0 else { var count = 1 array.reduce { prev, next -> if (prev != next) count++ next } count } }

Google
Boris
20.07.2017
13:52:30
для больших массивов

Igor
20.07.2017
13:54:21
fun runs(array: IntArray): Int { return if(array.isEmpty()) 0 else { var count = 1 array.reduce { prev, next -> if (prev != next) count++ next } count } }
А там для примитивных типов отдельные типизированные рефы же? Да IntRef Даже лучше, там же инлайниг

Quantum Harmonizer
20.07.2017
13:54:25
можно fold сделать без ветвления

Denis
20.07.2017
13:54:42
Здравствуйте. Нужна консультация по вопросу многопоточности. Сделал тестовое задание для простого управления банковскими счетами. В ответ получил отказ ввиду того что не была учтены работа в многопоточном режиме. Пожалуйста, укажите на проблемный участок. https://github.com/chipnesh/AccountOperations

Boris
20.07.2017
13:56:56
можно fold сделать без ветвления
зачем писать слова, если можно написать код?

Здравствуйте. Нужна консультация по вопросу многопоточности. Сделал тестовое задание для простого управления банковскими счетами. В ответ получил отказ ввиду того что не была учтены работа в многопоточном режиме. Пожалуйста, укажите на проблемный участок. https://github.com/chipnesh/AccountOperations
думаю, дело в том, что если делать это в базе, то нужны локи на сущности, которые будут меняться. Самый простой способ это воспользоваться оптимистической блокировкой которую хибернейт провайдит из коробки, гугл хибернейт вершн

Denis
20.07.2017
13:59:53
А разве hibernate не выбрасывает staleexeption если управляемая сущность была изменена?

Boris
20.07.2017
13:59:54
зачем там сервлеты и спринг?
может потому что может?

Denis
20.07.2017
14:00:12
зачем там сервлеты и спринг?
Там контроллер, сервлетов нет

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