Size: a a a

ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)

2020 March 25

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
нужно сделать инвариантный опшен с такой оптимизацией
источник

DM

Daniel Matveev in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Oleg ℕizhnik
тут сложность в том, что Option[String] <:< Option[Any]
не понял
источник

DM

Daniel Matveev in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Oleg ℕizhnik
а это значит, что рантайм представление у субтайпингового кода будет отличаться
так вся речь про рерайт была, еще какое то значение отличаться?
источник

D

Deλ✨ in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Kain Crow
Че за курс, который на степике?
Он же совсем базовый вроде если ты про него
Ага, я параллельно ещё читал всякое конечно, про фьючи там. Требования разные ж бывают, меня кроме базового и не спрашивали ничего.
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Daniel Matveev
так вся речь про рерайт была, еще какое то значение отличаться?
ну представь, что у тебя есть Option[Client] такой
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
ты передаёшь его в функцию
def foo(opt: Option[Any])
т.к. действует субтайпинг твой Client | Null передаётся без изменений
дальше тело функции
def foo(opt: Option[Any]) = opt match 
   case Some(_) => true
   case None      => false
ты получаешь match error
источник

λ

λoλdog in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Oleg ℕizhnik
ты передаёшь его в функцию
def foo(opt: Option[Any])
т.к. действует субтайпинг твой Client | Null передаётся без изменений
дальше тело функции
def foo(opt: Option[Any]) = opt match 
   case Some(_) => true
   case None      => false
ты получаешь match error
Ну если у тебя переписать это на матчинг нал на первом месте и эни в конце, то может и будет работать
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
λoλdog
Ну если у тебя переписать это на матчинг нал на первом месте и эни в конце, то может и будет работать
для Any уже не имеет права переписывать
источник

KC

Kain Crow in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Deλ✨
Ага, я параллельно ещё читал всякое конечно, про фьючи там. Требования разные ж бывают, меня кроме базового и не спрашивали ничего.
Бля я тоже так хочу
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
потому что Any может быть само по себе Option
источник

KC

Kain Crow in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
А то куда не глянь монады коты зио хотят от джуна я чет такой ну нахуй
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
или Null
источник

ᛒᚨᚱᛏᛟᛋᛋᛟ... in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Oleg ℕizhnik
в дотти если есть Option[A] и статически можно получить A <:< AnyRef, компиляторно оптимизировать его в Null | A
источник

λ

λoλdog in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Oleg ℕizhnik
для Any уже не имеет права переписывать
Да, это сложно. Но думаю впринципе реально сделать
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
λoλdog
Да, это сложно. Но думаю впринципе реально сделать
можно сделать только с инвариантным опшеном
источник

ᛒᚨᚱᛏᛟᛋᛋᛟ... in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Олег как думаешь
источник

ᛒᚨᚱᛏᛟᛋᛋᛟ... in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
дотти ведь дрочица на ровном месте щас
источник

ᛒᚨᚱᛏᛟᛋᛋᛟ... in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
с этими ренеймингами
источник

DM

Daniel Matveev in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
все равно не понял, коронавирус съел остатки мозгов видно
источник

w

welcometotheclubbudd... in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Daniel Matveev
все равно не понял, коронавирус съел остатки мозгов видно
источник