<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                Rust允許有限形式的運算符重載。這里有特定的運算符可以被重載。為了支持一個類型間特定的運算符,這里有一個你可以實現的特定的特性,它接著重載運算符。 例如,`+`運算符可以通過`Add`特性重載: ~~~ use std::ops::Add; #[derive(Debug)] struct Point { x: i32, y: i32, } impl Add for Point { type Output = Point; fn add(self, other: Point) -> Point { Point { x: self.x + other.x, y: self.y + other.y } } } fn main() { let p1 = Point { x: 1, y: 0 }; let p2 = Point { x: 2, y: 3 }; let p3 = p1 + p2; println!("{:?}", p3); } ~~~ 在`main`中,我們可以對我們的兩個`Point`用`+`號,因為我們已經為`Point`實現了`Add`。 這里有一系列可以這樣被重載的運算符,并且所有與之相關的特性都在[`std::ops`](http://doc.rust-lang.org/nightly/std/ops/)模塊中。查看它的文檔來獲取完整的列表。 實現這些特性要遵循一個模式。讓我們仔細看看[`Add`](http://doc.rust-lang.org/nightly/std/ops/trait.Add.html): ~~~ pub trait Add<RHS = Self> { type Output; fn add(self, rhs: RHS) -> Self::Output; } ~~~ 這里總共涉及到3個類型:你`impl Add`的類型,`RHS`,它默認是`Self`,和`Output`。對于一個表達式`let z = x + y`,`x`是`Self`類型的,`y`是`RHS`,而`z`是`Self::Output`類型。 ~~~ impl Add<i32> for Point { type Output = f64; fn add(self, rhs: i32) -> f64 { // add an i32 to a Point and get an f64 } } ~~~ 將允許你這樣做: ~~~ let p: Point = // ... let x: f64 = p + 2i32; ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看