タグ

ブックマーク / zenn.dev/tetsu_koba (2)

  • Rustのmatchのネストが深くなりすぎたときの一工夫

    最近またRustを勉強し始めています。 気がついたらmatchのネストが深くなりすぎていた Resultの処理をするのにmatchが便利です。 でもOkのときに続きの処理を書いていったら、ネストが深くなりすぎてしまいました。 こんな感じ。 loop { match reader.read_ivf_frame_header() { Ok(frame_header) => { let len: usize = frame_header.frame_size as _; match reader.read_frame(&mut frame_buffer[..len]) { Ok(_) => {} Err(ref e) if e.kind() == ErrorKind::UnexpectedEof => break, Err(e) => { eprintln!("Error: {e:?}"); b

    Rustのmatchのネストが深くなりすぎたときの一工夫
    mickn
    mickn 2023/08/27
  • Zig言語のドキュメントを見て「なるほど!」と思ったところ

    前回の続き。 ちょっとZig言語が面白そうです。まだあまりzigでコードは書いていないのですが、ドキュメントやソースコードをながめて思ったことを書き散らかしてみます。 (他の人がすでに書いていることはなるべく書かない) オブジェクト指向でなくてデータ指向 C言語に後にC言語っぽい文法の言語はたくさん出てきました。C++, Java, C#, Go, Rustなど。 C++Javaはオブジェクト指向の考え方を取り込んだもので、GoRustはいきすぎたオブジェクト指向を反省して、interface とか trait とか良いところだけを抽出した感じになっています。(個人の感想です) Zigには純粋にC言語からの改善をしていて、オブジェクト指向の香りがあまりしません。 むしろ「データ指向設計」(Data-Oriented Design)が意識されているらしいです。 紹介してもらったこの動画が

    Zig言語のドキュメントを見て「なるほど!」と思ったところ
    mickn
    mickn 2022/07/17
  • 1