📜  锈 - 切片

📅  最后修改于: 2022-05-13 01:54:24.684000             🧑  作者: Mango

锈 - 切片

切片是一种没有所有权的数据类型。 Slice 引用一个连续的内存分配而不是整个集合。切片也存在于Python,类似于 Rust 中的切片。当您不想要完整的集合或想要其中的一部分时,可以使用切片。

切片要点:

  • 在切片中,第一个元素位于 0 索引,最后一个元素是索引 1。
//gfg is String or Array
&gfg[0..2]  //from 0 to 1 index
&gfg[0..3]  //from 0 to 2 index
  • 如果要从 0 开始,则不需要传递 0。
//gfg is String or Array
&gfg[..2] //from 0 to 1 index
&gfg[..3] //from 0 to 3 index
  • 如果要到 String 或 Array 的末尾,请先计算长度然后传递它。
//gfg is String or Array
//calculate length using len() method
length_of_string=gfg.len();
//from 0 to last index
&gfg[..lenght_of_string] 
//from 4th element or index=3 to last index
&gfg[3..length_of_string]

示例 1 的方法:

  • 对于第一个字符,我们将从&gfg[0..1] (0,1) 开始。
  • 对于前三个字符,我们将使用&gfg[..3]&gfg[0..3]。
  • 从 0 开始到 x &gfg[..x]&gfg[0..x]
  • 对于从 0 到字符串 的长度,为此我们需要首先使用 len() 方法计算长度,而不是使用&gfg[..x]&gfg[0..length_of_string]
  • 对于从 x 开始到长度大于&gfg[x..length_of_string]。

示例 1:在 Rust 中对字符串进行切片

Rust
// Rust program for slicing of String
fn main() {
    
      // String
    let gfg = "GFG is a great start to start coding and improve".to_string();
    
    // for first character
    println!("first character ={}",&gfg[0..1] );
    
      // for first three characters
    println!("first three character ={}",&gfg[..3] );
  
      // calculating length of String
    let length_of_string=gfg.len();
    
      let x=5;
    
    // start from first to last character
    println!("start from 0 to x ={}",&gfg[..x] );
    
      // start from x to last character
    println!("start from x to end ={}",&gfg[x..length_of_string]);
    
      // start from first to last character
    println!("from start to last ={}",&gfg[..length_of_string])
}


Rust
// Rust program for slicing Array
fn main() {
    
    let gfg = [10, 22, 31, 43, 57];
    let length_of_array=gfg.len();
    let x=2;
    
      // for first value
    println!("for first= {:?}",&gfg[0..1]);
    
      // for first three value
    println!("for first three= {:?}",&gfg[0..3]);
    
      // for first to last(or length)
    println!("for 0 to length of the array= {:?}",&gfg[0..length_of_array] );
   
    println!("{:?}",&gfg[x..length_of_array]);
}


输出 :

first character =G
first three character =GFG
start from 0 to x =GFG i
start from x to end =s a great start to start coding and improve
from start to last =GFG is a great start to start coding and improve

示例 2 的方法:

  • 对于数组中的第一个值,我们将从&gfg[0..1] (0,1) 开始。
  • 对于数组中的前三个值,我们将使用&gfg[..3]&gfg[0..3]
  • 从 0 开始到 x &gfg[..x]&gfg[0..x]
  • 为了从 0 开始到数组的长度,为此我们需要首先使用 len() 方法计算长度,而不是使用&gfg[..length_of_array]&gfg[0..length_of_array]
  • 从 x 开始到数组的长度&gfg[x..length_of_array]

示例 2:对数组进行切片

// Rust program for slicing Array
fn main() {
    
    let gfg = [10, 22, 31, 43, 57];
    let length_of_array=gfg.len();
    let x=2;
    
      // for first value
    println!("for first= {:?}",&gfg[0..1]);
    
      // for first three value
    println!("for first three= {:?}",&gfg[0..3]);
    
      // for first to last(or length)
    println!("for 0 to length of the array= {:?}",&gfg[0..length_of_array] );
   
    println!("{:?}",&gfg[x..length_of_array]);
}

输出 :

for first= [10]
for first three= [10, 22, 31]
for 0 to length of the array= [10, 22, 31, 43, 57]
[31, 43, 57]