新しいものを表示

golang、継承が無いらしい(?)からこういう風にできるのかわかんないけど・・・><

・・・それを例えばこう省略出来ればいいような?>< 

Fuga();
if (lasterror != null)
{
if (lasterror is TekitounaError)
{
Console.WriteLine($"てきとうなえらー!><;{lasterror.Message}");
}
}

C# で言うとこんな感じに・・・>< 

Exception lasterror = null;
try
{
Fuga();
}
catch (Exception ex)
{
lasterror = ex;
}

if (lasterror != null)
{
if (lasterror is TekitounaError)
{
Console.WriteLine($"てきとうなえらー!><;{lasterror.Message}");
}
}

orange さんがブースト

ていうか絶対返すのであれば、暗黙に予約語で返って来るみたいななんかそういう方がいいような気が・・・><(例えばlasterrorって言う予約語(予約変数?><;)の中身を見ればおk方式とか・・・><)

orange さんがブースト

そもそもerrorを絶対に返せみたいなのを感じる

例えば、雑すぎるけどこんな感じとか><; errが何かチェックされない><(人間から見た時に(広義の)型安全じゃないみたいな><) 

func Hoge() int {
err := Fuga() //実は返ってくるのはerrorじゃ無い

if err != nil {
return 0 //エラーの時は0を返そう><
}
return 1
}

こういう場合には、return errの所で型チェックされるだろうけど、そうじゃない場合チェックされる事が無くない?>< 

func Hoge() error {
err := Fuga()

if err != nil {
return err
}
...
return nil
}

オレンジ的そもそも謎なのは、 errの型がerrorって型である保障が全く無いコードになってない?><;って疑問が><;

orange さんがブースト

Big Sky :: golang で複数のエラーをハンドリングする方法 mattn.kaoriya.net/software/lan
これとかはどうだろうか

オレンジならどういう仕様にするか?><;って考えた結果、暗黙にエラー用の型で宣言されてる変数を用意するという方式を思いついた・・・><(でも、なんかエレガントじゃない><;)

orange さんがブースト

golangのエラー、エラーオブジェクト?><が返ってくるかどうかどうしてわかるの・・・?><;(型推論のせいで『必ずそれが例外である』とは限らないコードになっちゃってない?><;)

よくわからない・・・><
-- なぜGo言語はエラー返却に例外機構を使わないのか - 嵐の小舟より tmrtmhr.info/tech/why-does-gol

タプルでどうにかする方式?><
Go言語のエラーハンドリングについて - Qiita qiita.com/nayuneko/items/3c0b3

orange さんがブースト

golang、無限に `if err != nil` みたいなのを書いてる

ruby使ったこと無いから、マストドンのソースが特別におかしすぎるのか、そうではなくrubyがそういう文化なのかさっぱりわから無い感がある・・・><(ていうか動的型付けな言語のコードってその言語がわかんないと読めないような書きかたされてたり、全部読まなきゃ意味がわからない書きかたされててすごくアレ><;)

orange さんがブースト

そんな丁寧な実装になってるはずがないでしょ、と思いかけてしまったのは正直すまないと思っている

orange さんがブースト

エクスポートできない画像は諦めるようなコードになってないのかな。

古いものを表示
:realtek:

思考の /dev/null