タグ

ブックマーク / 0x90.hatenablog.jp (2)

  • Rust 1.26 新機能まとめ - 0x90

    サイトを結合したのをおいておきます。 今更ですがRust 1.26が5/10にリリースされました。新機能をおさらいしましょう。今回は相当に大きい変更がたくさん入っています。公式はここです。 impl Trait impl Traitは最大の変更のひとつでしょう。ざっくりいうと、型名のようにimpl Traitを使えます。 use std::fmt::Debug; fn hoge(a: impl Debug) { println!("{:?}", a); } fn fuga() -> impl Debug { 1 } 引数のトレイト境界を指定する使い方の場合、従来のジェネリクスとの棲み分けをどうするべきなのかはすこし気になります。まあ、簡単な場合であればおそらくimpl Traitを使うようになるんでしょう。ただ、微妙にトリッキーなのは、こういう場合がコンパイルエラーになることです。 tr

    Rust 1.26 新機能まとめ - 0x90
    hikazoh
    hikazoh 2018/06/06
  • Rust 1.20の気になる新機能 「Associated_consts」 - 0x90

    今日ふとRust 1.20の新機能リストを眺めていたら、Associated constという面白そうな新機能を見つけたのでplaygroundで試してみました。 使い方 こういう使い方ができます。 trait HasConst { const C: f64; } struct A; struct B; impl HasConst for A { const C: f64 = 0f64; } impl HasConst for B { const C: f64 = 1f64; } fn get_const<T: HasConst>(_: T) -> f64 { T::C } fn main() { println!("A {}", get_const(A{})); println!("B {}", get_const(B{})); } Associated typeと組み合わせることもでき

    Rust 1.20の気になる新機能 「Associated_consts」 - 0x90
    hikazoh
    hikazoh 2017/08/26
  • 1