leisurely8rust


04.变量和常量

<h1>01.常量和变量</h1> <h2>1、变量绑定</h2> <pre><code>fn main() { let a:&amp;amp;str = &amp;quot;aaa&amp;quot;; println!(&amp;quot;Hello, {}!&amp;quot;, a); let b:i32 = 1; println!(&amp;quot;Hello, {}!&amp;quot;, b); // 通过类型后缀方式进行类型标注:22是i32类型 let f = 22i32; let (c,d):(i32,&amp;amp;str) = (1,&amp;quot;aaa&amp;quot;); // 元组变量解构 println!(&amp;quot;Hello, ({},{})&amp;quot;, c,d); }</code></pre> <h2>2、变量重新绑定(遮蔽shadowing)</h2> <pre><code>fn main() { let a:&amp;amp;str = &amp;quot;aaa&amp;quot;; println!(&amp;quot;{}&amp;quot;, a); let a = &amp;quot;bbb&amp;quot;; // 变量遮蔽 shadowing println!(&amp;quot;{}&amp;quot;, a); }</code></pre> <h2>3、变量可变mut</h2> <pre><code>fn main() { let mut a:&amp;amp;str = &amp;quot;aaa&amp;quot;; println!(&amp;quot;{}&amp;quot;, a); a = &amp;quot;bbb&amp;quot;; // 变量可变 println!(&amp;quot;{}&amp;quot;, a); }</code></pre> <h2>4、变量解构</h2> <pre><code>fn main() { let (c,d):(i32,&amp;amp;str) = (1,&amp;quot;aaa&amp;quot;); // 元组变量解构 println!(&amp;quot;Hello, ({},{})&amp;quot;, c,d); }</code></pre> <h2>5、常量constant</h2> <ul> <li>不可以重新复制</li> <li>不可以重新绑定 <pre><code>fn main() { // 1、常量名称大写 // - 不可以重新复制 // - 不可以重新绑定 const APP_ID: i32 = 5; println!(&amp;quot;APP_ID: {}&amp;quot;, APP_ID); }</code></pre></li> </ul> <h2>6、常量方法const fn</h2> <p>编译时提前计算</p> <pre><code>const fn add(a: usize, b: usize) -&amp;gt; usize { a + b } const RESULT: usize = add(5, 10); fn main() { println!(&amp;quot;The result is: {}&amp;quot;, RESULT); }</code></pre> <h2>6、常量泛型</h2> <pre><code>1、[i32; 2] 和 [i32; 3] 是不同的数组类型,无法用同一个函数调用。 fn display_array(arr: [i32; 3]) { println!(&amp;quot;{:?}&amp;quot;, arr); } fn main() { let arr: [i32; 3] = [1, 2, 3]; display_array(arr); let arr: [i32; 2] = [1, 2]; display_array(arr); } 2、将 i32 改成所有类型(泛型)的数组 会为每个长度单独创建一个函数,假如第一个数组长度是32,就会创建32个函数 fn display_array&amp;lt;T: std::fmt::Debug&amp;gt;(arr: &amp;amp;[T]) { println!(&amp;quot;{:?}&amp;quot;, arr); } fn main() { let arr: [i32; 3] = [1, 2, 3]; display_array(&amp;amp;arr); let arr: [i32; 2] = [1, 2]; display_array(&amp;amp;arr); } 3、const泛型 const N: usize:代表数组长度定义了就不变,假如第一个数组长度是32,就只会创建一个32参数的函数 fn display_array&amp;lt;T: std::fmt::Debug, const N: usize&amp;gt;(arr: [T; N]) { println!(&amp;quot;{:?}&amp;quot;, arr); } fn main() { let arr: [i32; 3] = [1, 2, 3]; display_array(arr); let arr: [i32; 2] = [1, 2]; display_array(arr); } </code></pre>

页面列表

ITEM_HTML