Size: a a a

2020 February 13

A

Aikidos in rust_offtopic
так что,...тут Haxe гавно всё равно
источник

p

polunin.ai in rust_offtopic
Aikidos
так что,...тут Haxe гавно всё равно
Там нет опций компилятора? О.о
источник

A

Aikidos in rust_offtopic
polunin.ai
Там нет опций компилятора? О.о
в плейграунде нет возможности выбрать ES.
источник

BD

Berkus Decker in rust_offtopic
polunin.ai
trait Foo {
 fn bar() -> Result<(), ()>;
}
impl Foo for Baz {
 fn bar() -> Result<(), ()> {
   if cond { Ok() } else { Err() }
 }
}
impl Foo for Bat {
 fn bar() -> Result<(), ()>::Ok {
   Ok()
 }
}
но это уже другой return type, не тот что в трейте
источник

p

polunin.ai in rust_offtopic
Berkus Decker
но это уже другой return type, не тот что в трейте
Тот же
источник

p

polunin.ai in rust_offtopic
Так как Result::Ok - подмножество Result
источник

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
trait Foo {
 fn bar() -> Result<(), ()>;
}
impl Foo for Baz {
 fn bar() -> Result<(), ()> {
   if cond { Ok() } else { Err() }
 }
}
impl Foo for Bat {
 fn bar() -> Result<(), ()>::Ok {
   Ok()
 }
}
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=dc07e3b4ca7d2691242149eed46968ef
Примерно так это можно выразить сейчас
источник

EG

Emmanuel Goldstein in rust_offtopic
Ждём стабилизации never type
источник

r

red75prime in rust_offtopic
Есть Result<(), !>
источник

EG

Emmanuel Goldstein in rust_offtopic
red75prime
Есть Result<(), !>
Увы
источник

r

red75prime in rust_offtopic
А, да. не стабилизировали ещё
источник

EG

Emmanuel Goldstein in rust_offtopic
Но есть Result<(), Infallible>, что семантически то же самое.
источник

BD

Berkus Decker in rust_offtopic
polunin.ai
Так как Result::Ok - подмножество Result
вот именно, поэтому тип другой, ведь Result - надмножество Ok и у него больше возможных значений
источник

EG

Emmanuel Goldstein in rust_offtopic
И когда-нибудь будет ещё exhaustive_patterns, которая позволит делать
let result: Result<T, !> = ...;
let Ok(x) = result;
источник

p

polunin.ai in rust_offtopic
Berkus Decker
вот именно, поэтому тип другой, ведь Result - надмножество Ok и у него больше возможных значений
Мы можем производить с Ok теже операции что и с Result
источник

EG

Emmanuel Goldstein in rust_offtopic
Ok это ваще не тип. Enum variant это отдельная сущность в Rust.
источник

BD

Berkus Decker in rust_offtopic
polunin.ai
Мы можем производить с Ok теже операции что и с Result
например получить Ok::Err()?
источник

p

polunin.ai in rust_offtopic
У меня такое ощущение что разница между интерпретируемыми и языками с ВМ только в типизации (динамическая у интерпретируемых, статическая у ВМ)
источник

r

red75prime in rust_offtopic
Berkus Decker
например получить Ok::Err()?
Err можно вытащить только матчем. Так что тут нормально.
источник

p

polunin.ai in rust_offtopic
Berkus Decker
например получить Ok::Err()?
Ты можешь сделать .map_err() все также
источник