Size: a a a

2017 April 03

L

Leo in KotlinLangRu
Аналогов пока не нашел
источник

ММ

Миша Малышев 😌👌 in KotlinLangRu
Обновил дженерики, но не закончил
источник

ММ

Миша Малышев 😌👌 in KotlinLangRu
Вот этот абзац меня с ума сводит просто

The general rule is: when a type parameter T of a class C is declared out, it may occur only in out-position in the members of C, but in return C<Base> can safely be a supertype of C<Derived>.
источник

ММ

Миша Малышев 😌👌 in KotlinLangRu
Что такое out-position и как связаны Base и Derived с остальной частью предложения?
источник

ММ

Миша Малышев 😌👌 in KotlinLangRu
Мб кто что-то кодил с использованием этого, подскажите как можно переписать по понятиям
источник
2017 April 04

OD

Oleg D. in KotlinLangRu
насколько я знаю <out С> это аналог явовского  <? extends С>, а котлиновский <in С> это аналог явовского <? super С>.

То есть принцип простой - <out С> ограничивает "снизу" - ожидается наследник С, в то время как <in С> ограничивает "сверху" - ожидается родитель С
источник

OD

Oleg D. in KotlinLangRu
чтобы было понятнее: Допустим я хочу сделать метод, который в качестве аргумента принимает список CharSequence, Но при этом хочу также чтобы в него можно было передать список String-ов и всех последующих потомков CharSequence. Тогда я пишу так:

fun foo(list: List<out CharSequence>){

     // ....

}
источник

OD

Oleg D. in KotlinLangRu
Ну и понятное дело внутри тела foo нельзя ничего писать в список list. Потому что неизвестно какой нам тип могут передать. Отсюда и название out
источник

OD

Oleg D. in KotlinLangRu
Миша Малышев 😌👌
Вот этот абзац меня с ума сводит просто

The general rule is: when a type parameter T of a class C is declared out, it may occur only in out-position in the members of C, but in return C<Base> can safely be a supertype of C<Derived>.
Общее правило таково: когда параметр T класса С объявлен как out, он может использоваться только в out-местах в членах C. Но зато, в результае, C<Base> является родителем C<Derived>.
источник

SZ

Stas Zemlyakov in KotlinLangRu
C<Base> может быть родительским классом для C<Derived>
источник

ММ

Миша Малышев 😌👌 in KotlinLangRu
Окей
источник
2017 April 07

SZ

Stas Zemlyakov in KotlinLangRu
Изучаю Android. У гугла есть статьи, переведённые на русский. Отвратительный перевод оф.доки.
источник

ММ

Миша Малышев 😌👌 in KotlinLangRu
Более того, они старые и неполные
источник

ММ

Миша Малышев 😌👌 in KotlinLangRu
Стаковерфлоу топ
источник

ММ

Миша Малышев 😌👌 in KotlinLangRu
Ну и английская спецификация
источник

ММ

Миша Малышев 😌👌 in KotlinLangRu
И сорцы, конечно
источник
2017 April 08

ММ

Миша Малышев 😌👌 in KotlinLangRu
Вау, просто топ http://kotlinlang.ru/contributors
источник

SZ

Stas Zemlyakov in KotlinLangRu
ухты 8) приятно
источник

SZ

Stas Zemlyakov in KotlinLangRu
Главное, чтоб это всё кому-нибудь помогло.
источник
2017 April 09

ММ

Миша Малышев 😌👌 in KotlinLangRu
Народ, кто шарит в шаблонах проектирования, помогите в вопросе:

В однопоточном коде это можно сделать обычным if'ом, но у меня тут асинхронность. Мне нужно выполнить действие, если истино несколько условий (в моём случае - 2). Каждое из них может быть истино или ложно в любой момент времени, то есть они постоянно меняются.

Как сейчас реализовано: в одном месте, где условие 1 начало выполняться, проверяется условие 2, и в случае истинности обоих выполняется код, соответственно так же и в другом. Но для меня это выглядит анти-архитектурно. Как думаю будет лучше - поставить метод, который будет вызываться при изменении истинности одного из событий и проверять на истинность остальные. Что-то типо наблюдателя, но наблюдатель это один ко многим, а мне нужно многие ко многим.

Так вот вопрос: есть паттерн для таких целей вообще, или нет?
источник