
Alexander
22.07.2017
10:54:40
@Mihail_t Спасибо. Сообщение ввело в заблуждение

Gray
22.07.2017
12:25:29
public inline fun <T, R, C : MutableCollection<in R>> Iterable<T>.mapTo(destination: C, transform: (T) -> R): C {...}
ох, как сложно понял

Boris
22.07.2017
12:42:49
А мне ок

Alexander
22.07.2017
13:45:09
Gray посмотри на c++ или rust и сразу полегчает=)

Google

Gray
22.07.2017
13:50:24
Кстати, можете покидать пару ссылок на полезную инфу. С документации не все понятно

Boris
22.07.2017
13:55:52
а почему так каждый раз ругаются когда этого бота запускают, старая статистика убивается?

Quantum Harmonizer
22.07.2017
14:00:41

Boris
22.07.2017
14:02:41
Ответ в описании чата.
да, я отлично знаю, что там эта ссылка есть, просто пытаюсь суть проблемы понять, она в том, чтобы ленту еще раз этой ссылкой не засорять или есть и какие-то другие побочные эффекты?

Quantum Harmonizer
22.07.2017
14:03:05

Gray
22.07.2017
14:19:33
я случайно отправил))
repeat(times = 5, action = { i ->
println("index $i")
})
repeat(times = 5) { i ->
println("index $i")
}
кто-то может обьснить, почему во втором варианте возможно такая записить

Михаил
23.07.2017
09:11:13

Gray
23.07.2017
09:13:20
понял, спасибо

Михаил
23.07.2017
09:15:24

Gray
23.07.2017
09:28:52
обьясните еще, что такое inline функции, зачем они вообще

Yaroslav
23.07.2017
09:32:14

Google

Nikolai
23.07.2017
09:33:22
инлайн функции могут быть виртуальными?

Ivan
23.07.2017
09:40:47
Омг, откуда этот текст?

Nikolai
23.07.2017
09:41:14
ссылка выше

Ivan
23.07.2017
09:44:30
Офигеть и в офф документации это тоже есть... https://kotlinlang.org/docs/reference/inline-functions.html
Я всегда думал что основным аргументом за инлайн было return в теле лямбды и возврат значения из вышестоящей функции

Ruslan
23.07.2017
09:45:39

Ivan
23.07.2017
09:46:40
А, точняк, котлин же ещё с андроидом и другими vm должен дружить, а там и правда может быть пенальти, просто в хотспоте jit это всё умеет круто оптимизировать. Вплоть до девиртуализации метода

Quantum Harmonizer
23.07.2017
10:04:47

Boris
23.07.2017
11:27:03

Quantum Harmonizer
23.07.2017
11:28:15

Boris
23.07.2017
11:28:30
Те вызовы, которые можно сделать инлайн они не будут виртуальными, инвокстатик в плохом случае, а если под нагрузкой, то и заинлайнится
Это я к тому, что в общем случае, лучше стараться избегать оптимизации явным инлайном

Quantum Harmonizer
23.07.2017
11:49:34

Boris
23.07.2017
12:01:23
Не, я имею ввиду оптимизацию инлайна функции. Инлайн лямбд это одна из основных фич инлайна

Quantum Harmonizer
23.07.2017
12:03:12

Boris
23.07.2017
12:26:34
Не уловил смысл предложения.
Я говорю о том, что инлайнить функцию принудительно, чтобы сэкономить на инвоке в общем случае не имеет смысла. Совсем другое дело инлайнить функцию вместе с передаваемой в неё лямбдой, ради этого во многом эта фича и появилась

Google

Quantum Harmonizer
23.07.2017
12:27:41

Boris
23.07.2017
12:29:27
Там профит не только в отсутствии виртуального вызова, но и это тоже, да. Я похоже не правильно понял посыл
Вообще думаю для кейза в котором можно применить инлайн-функцию, хотспот может вызов девиртуализировать
Но всё равно много профитов
Особенно для дсл-ов

Lilian
23.07.2017
16:40:48
для любителей шары, пока не поздно
Kotlin for Android Development : Develop an App with Kotlin – 100% Free Udemy Coupon
https://www.udemy.com/kotlin-for-android-development-development/?couponCode=BBHFREE

Sergey
23.07.2017
18:29:55
Спасибо ?

Strashko
23.07.2017
18:34:25

Lilian
23.07.2017
18:36:26
?

Gray
23.07.2017
20:39:40
fun stringBuilder(): String {
testFun { name: String, age: Int ->
return "My name is $name"
}
return ""
}
inline fun testFun(block: (String, Int) -> Int): Unit {
block("Gray", 23)
}

Quantum Harmonizer
23.07.2017
20:41:27

Gray
23.07.2017
20:41:52
кто объяснить, почему должна быть функция, которая возвращает Int, но можно передать и функцию, которая возвращает String
вроде как

Quantum Harmonizer
23.07.2017
20:44:48

Admin
ERROR: S client not available

Konstantin
23.07.2017
20:45:12
Да, насколько я помню там есть non-local return
И это действильно относится к inline

Quantum Harmonizer
23.07.2017
20:46:35

Google

Quantum Harmonizer
23.07.2017
20:47:01
Технически, она, скорее всего, возвращает Nothing, что является подтипом всего, в т. ч. Int.

Gray
23.07.2017
20:49:31
не очень понятно, как это работает

Quantum Harmonizer
23.07.2017
20:50:52

Gray
23.07.2017
20:54:27
можете написать, как оно будет "под капотом", как оно встроит функцию

Quantum Harmonizer
23.07.2017
20:55:57

Sergey
23.07.2017
21:01:45
Привет! Я сегодня обновил свой набор карточек для интервального повторения разделов документации по Котлину (для программы Anki), делюсь этим с сообществом. Возможно, тут кто-то применяет такой подход для повторения прочитанной информации чтобы она лучше усвоилась и ему это будет полезно.
Сейчас набор синхронизирован с репозиторием сайта котлина.
http://telegra.ph/Kotlin-language-reference-in-form-of-Anki-cards-07-23
? Слышали ли вы \ пользовались ли методом интервального повторения ?
? Не слышал, интересно взглянуть – 8
??????? 67%
? Не слышал и не интересно – 3
??? 25%
? Слышал, но не пользуюсь – 1
? 8%
? Да, слышал, пользуюсь
▫️ 0%
? 12 people voted so far.

Quantum Harmonizer
23.07.2017
21:02:47

Sergey
23.07.2017
21:03:20
Я потратил некоторое время для того чтобы это все оформить и логично будет, что мне интересно насколько это может быть полезно сообществу ?

Konstantin
23.07.2017
21:06:36
Проблема в смысле подхода. Если пользуешься чем - то, то запомнится и само. Если никак не получается чисто механически сдампить все в голову, то может и не стоит себя насиловать?

Quantum Harmonizer
23.07.2017
21:06:51

Gray
23.07.2017
21:09:01
Я правильно понял, что inline функции только с лямбдами работает?

Quantum Harmonizer
23.07.2017
21:09:08

Sergey
23.07.2017
21:09:19
Возможно, однако подобные подходы позволяют быстро восстанавливать инфу в голове после перерыва долгого и зачастую помогают при подготовке к собеседованию

Dibro
23.07.2017
21:09:27
работает с чем угодно, но эффективно только с лямбдами

Quantum Harmonizer
23.07.2017
21:09:59

Gray
23.07.2017
21:10:07
fun stringBuilder2(): String {
testFun2()
return ""
}
inline fun testFun2(): String {
return "Gray"
}
тупой пример, просто интересно, как работает

Dibro
23.07.2017
21:10:34
еще инлайн используется когда нужен reified генерик

Google

Quantum Harmonizer
23.07.2017
21:10:57
"Gray" — неиспользованное выражение

Gray
23.07.2017
21:12:27
я думал, что return вернет Gray в stringBuilder2

Quantum Harmonizer
23.07.2017
21:14:09
Нет, non-local return происходит только из лямбды. А здесь всё как обычно — одна функия использует другую, а та возвращает ей значение.