タグ

ブックマーク / qiita.com/wada314 (2)

  • mutなスマポ (BoxとかRcとかCellとか) - Qiita

    スマートポインタのことをスマポって略してみました。 Rustのポインタ・所有権管理は当にくっっそ面倒もとい厳格です。 使える武器を全部知っておかないと、ちょっとしたプログラムを書くのにも苦労間違いなしです。 だいたいのチュートリアルではBoxとRcの簡単な使い方には触れますが、意外とCellやmut変数の使い方に触れてるものが少ない(ような気がした)ので書きました。 (注:型を読者にわかりやすくするために、変数宣言ではlet a : i32のように型を記入していますが、来ほとんどが省略可能です) mutな参照 let mut a : i32 = 1; { let ref_to_a : &mut i32 = &mut a; *ref_to_a = 32; } println!("a = {}", a); // a = 32 これはまぁ、普通に言語チュートリアルでも出てくるようなプログラム

    mutなスマポ (BoxとかRcとかCellとか) - Qiita
    nabinno
    nabinno 2015/12/11
  • イテレータを返す関数を書きたいんですけど? → やめとけ。 死ぬぞ。 - Qiita

    !!この記事の内容はもう古いです。 詳しくはコメント参照!! こんにちは。 Rust記事です。 Rust、比較的新しい言語じゃないですか。 頑張ってチュートリアル読んで、じゃあなんかちょっとしたアルゴリズムでも書いてみるか、ってなるじゃないですか。 で、大体のちょっとしたアルゴリズムって、まぁ普通は配列とかマップとか、そういうデータ集合のデータ構造が出てきますよね。 もちろんそんなデータ構造を関数間で受け渡ししたくなるじゃないですか。 で、『Vec作って返すよりもイテレータの状態で返したほうがパフォーマンスいいんじゃない?』って場面はまぁあると思うんですよ。 やめとけ、死ぬぞ。 っていうのが今回の主旨です。 イテレータを返す関数って、どんな定義になると思いますか? ここでは適当に、Vec<i32>を2つ受け取って、それらを連結した上で3の倍数の要素のみを返したい、とか考えましょう。 たぶん

    イテレータを返す関数を書きたいんですけど? → やめとけ。 死ぬぞ。 - Qiita
  • 1