&[T]
türünde bir değişkenim var; a
'un bir alt kısmına nasıl başvuru yapabilirim?Alt bölümler nasıl alınır?
Somut bir örnek olarak, a.len()
'un sağlanmış olması koşuluyla a
'un ilk ve ikinci yarısını almak istiyorum.
&[T]
türünde bir değişkenim var; a
'un bir alt kısmına nasıl başvuru yapabilirim?Alt bölümler nasıl alınır?
Somut bir örnek olarak, a.len()
'un sağlanmış olması koşuluyla a
'un ilk ve ikinci yarısını almak istiyorum.
Bunun için kesme sözdizimini kullanın:
fn main() {
let data: &[u8] = b"12345678";
println!("{:?} - {:?}", &data[..data.len()/2], &data[data.len()/2..]);
}
Genel sözdizimi start_idx
ve başlayarak slice
türetilmiş bir dilim verir
&slice[start_idx..end_idx]
(o here deneyin) end_idx-1
ile biten (yani, doğru dizindeki öğe dahil değildir). Sıfır veya dilim uzunluğu anlamına gelen indeks de ihmal edilebilir (her ikisi için de geçerli). Eğer iki dilim halinde bazı pozisyonda bir dilim bölmek istiyorsanız, split_at()
yöntemi kullanmak genellikle daha iyi olduğunu
Not: Ayrıca
let data = b"12345678";
let (left, right): (&[u8], &[u8]) = data.split_at(4);
, bu işten iki değişken dilimler elde etmenin tek yolu budur başka değişken dilim:
let mut data: Vec<u8> = vec![1, 2, 3, 4, 5, 6, 7, 8];
let data_slice: &mut [u8] = &mut data[..];
let (left, right): (&mut [u8], &mut [u8]) = data_slice.split_at_mut(4);
Ancak bu temel şeyler Rust üzerinde the official book açıklanmıştır. Rust'u öğrenmek istiyorsan oradan başlamalısın.