新しいものを表示
orange さんがブースト

2年近く前の話ではあるけども。
小ネタ チェック例外とUnion型 | ++C++; // 未確認飛行 C ブログ ufcpp.net/blog/2016/12/tipsuni

orange さんがブースト

あとは「エラーハンドリング必ずやれ」って場面で、それを静的に解析して「書けや!」ってエラー出せればいいのかも?><

ていうかnullableもそうだけど、壊れてるんです!><って時に壊れてるにもかかわらず壊れてないかのようにアクセスしちゃうのが問題なわけじゃん?><(nullableの話に置き換えて、壊れてるをnullにするともっとわかりやすい?><)
だったらそれをどうにかできるという意味では、
mstdn.nere9.help/@orange_in_sp
の発想でもおk?><

でも、そういう仕組み作ると型チェックを人間側が自分でする場面が増えて、データ型の型安全性がぐちゃぐちゃになって本末転倒になりそう><

なんか逆にどんどんわからなくなってきた><

ていうかOption<T>ってそういうこと・・・・?><

これもしかしてそういう意図?><;

orange さんがブースト

判別共用体 (バリアント) は視覚的にわかりやすくていい感じ - ぐるぐる~
bleis-tift.hatenablog.com/entr
空想上の言語…🤔

インタフェース使って(この場合IFugaがインタフェースだとして)例えば
hoge?IFuga.Fuga();
みたいに書くとhogeが・・・・あれ?><;

ていうか、
if (hoge!=null) {hoge.Fuga() }
の代わりに
hoge?.Fuga()ってあるじゃん?><
それはnullじゃなければ、だけど、そうじゃなく型がこれであればこれを実行するみたいな書き方さえ出来れば、RustっぽくしなくてもRustっぽい事出来るんじゃないの感><(日本語難しい)

オレンジ的にさっきの珍妙な物を書くときになにを考えて作ったかというと「戻り値のオブジェクトが型チェックしてくれたらより安全であるみたいな感じなのかも?><」って考えて、あんな感じになった><;

なんか30分くらいぐるぐる考えたら、逆に「Rustっぽい意味ってあるの?>< C# のインタフェースの方がよくない?><」ってなってきたし、なんでRustがそうなってるのかさっぱりわからなくなってきた・・・><

なんか、鉄器の時代に鉄がよくわかんなくて石剣作った人の気持ちってこんな感じなのかなになってきた・・・><

orange さんがブースト
orange さんがブースト

今の C# なら型スイッチとか活用できるんではと思ったけど、switchがステートメントのままだった。匿名関数挟まないから直接returnすることはできるけど。

orange さんがブースト

ResultとかEitherとかMaybe/Optionとか、パターンマッチと組み合わせて値を返せることがひとつの魅力だったりするので、こういう感じになったりする。
gist.github.com/unarist/d7fafe

古いものを表示
:realtek:

思考の /dev/null