タグ

Rustに関するzyzyのブックマーク (164)

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

    fn the_function<'a>(v1: &'a Vec<i32>, v2: &'a Vec<i32>) -> std::iter::Filter<std::iter::Chain<std::slice::Iter<'a, i32>, std::slice::Iter<'a, i32>>, fn(&&i32) -> bool> { fn only_multiples_3(x: &&i32) -> bool { *x % 3 == 0 }; v1.iter().chain(v2.iter()).filter(only_multiples_3) } ちなみに今私はこの関数をコンパイル通すために1時間かけました。 まさかの関数体より長い戻り値型。 どうしてこうなった。 なぜなら、関数の戻り型の所には「型」を書かなければいけないのです。 Iterator<i32>はあくまでも trait

    イテレータを返す関数を書きたいんですけど? → やめとけ。 死ぬぞ。 - Qiita
    zyzy
    zyzy 2015/02/25
    ぎゃあ……意外なところに落とし穴が。
  • Announcing Rust 1.0 Alpha | Rust Blog

    Today, we're excited to release the alpha version of Rust 1.0, a systems programming language with a focus on safety, performance and concurrency. This release marks a huge milestone for Rust and its community: The language is feature-complete for 1.0. While we plan to make many usability improvements before the final release, all 1.0 language features are now in place and we do not expect major b

    Announcing Rust 1.0 Alpha | Rust Blog
    zyzy
    zyzy 2015/01/10
    ちょっと予定より遅れつつも、キターーーーーーーーーーーー
  • Rustの1.0ベータ版に向けたロードマップ

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Rustの1.0ベータ版に向けたロードマップ
    zyzy
    zyzy 2014/10/17
    今年もうあと2ヶ月しかないわけですが。1は影響範囲でかそうなんで、早く安定して欲しい。
  • Rustで値のmoveが起こる場合 - saneyuki_s log

    Rust v.0.11pre時点での情報です。 Rustにおけるムーブセマンティクス だいたいC++のそれと同じものと理解してるんだけど、おさらいとして。 Rustの言語セマンティクスの一つに、メモリの所有権(Ownership)というものがある。これは「このメモリ領域を自身のもの所有しているものは常に一つ(ユニーク)になる」というもので、これが保証されると、特定のメモリの領域は、所有する変数ひいては所有するタスクが決定されるようになる。原則として、各タスクごとの単位でしか、その所有権の貸し借り(borrowing)ができないため、タスクAから他の非同期に動作するタスクBの所有するメモリ領域の変更は不可能になる。タスクAからタスクBに向けてデータを送信した場合、データの所有権ごと送信されるので、結果としてデータ競合が発生しないことが保証される(もちろんArc<T>とか使ったり、生ポインタを

    Rustで値のmoveが起こる場合 - saneyuki_s log
    zyzy
    zyzy 2014/08/06
    最初に気になる部分の分かりやすいまとめ