<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有一個用`const`關鍵字定義常量的方法: ~~~ const N: i32 = 5; ~~~ 與[let](http://doc.rust-lang.org/nightly/book/variable-bindings.html)綁定不同,你必須標注一個`const`的類型。 常量貫穿于整個程序的生命周期。更具體的,Rust中的常量并沒有固定的內存地址。這是因為實際上它們會被內聯到用到它們的地方。為此對同一常量的引用并不能保證引用到相同的內存地址。 ## `static` Rust以靜態量的方式提供了類似“全局變量”的功能。它們與常量類似,不過靜態量在使用時并不內聯。這意味著對每一個值只有一個實例,并且位于內存中的固定位置。 這是一個栗子: ~~~ static N: i32 = 5; ~~~ 與[let](http://doc.rust-lang.org/nightly/book/variable-bindings.html)綁定不同,你必須標注一個`static`的類型。 靜態量貫穿于整個程序的生命周期,因此任何存儲在常量中的引用有一個[`’static`生命周期](http://doc.rust-lang.org/nightly/book/lifetimes.html): ~~~ static NAME: &'static str = "Steve"; ~~~ ## 可變性 你可以用`mut`關鍵字引入可變性: ~~~ static mut N: i32 = 5; ~~~ 因為這是可變的,一個線程可能在更新`N`同時另一個在讀取它,導致內存不安全。因此訪問和改變一個`static mut`是[不安全(unsafe)](http://doc.rust-lang.org/nightly/book/unsafe.html)的,因此必須在`unsafe`塊中操作: ~~~ unsafe { N += 1; println!("N: {}", N); } ~~~ 更進一步,任何存儲在`static`的類型必須實現`Sync`。 ## 初始化 `const`和`static`都要求賦予它們一個值。它們只能被賦予一個常量表達式的值。換句話說,你不能用一個函數調用的返回值或任何相似的復合值或在運行時賦值。 ## 我應該用哪個?(Which construct should I use?) 幾乎所有時候,如果你可以在兩者之間選擇,選擇`const`。實際上你很少需要你的常量關聯一個內存位置,而且使用常量允許你不止在在自己的包裝箱還可以在下游包裝箱中使用像常數擴散這樣的優化。 一個常量可以看作一個C中的`#define`:它有元數據開銷但無運行時開銷。“我應該在C中用一個#define或者一個static呢?”大體上與在Rust你應該用常量還是靜態量是一個問題。
                  <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>

                              哎呀哎呀视频在线观看