Fatias de ferrugem

Fatias de ferrugem
Uma fatia é um tipo de dados que permite fazer referência a uma sequência adjacente de elementos na coleção de ferrugem. Como uma fatia é uma referência, ela não tem um proprietário. Ele faz referência a um ponteiro para uma memória "Slice".

Neste tutorial, aprenderemos como podemos acessar fatias de coleção, como vetores, matrizes, strings, etc.

Ferrugem criar fatia

Conforme declarado na seção acima, uma fatia é um tipo emprestado que mantém o ponteiro para o endereço dos dados.

Portanto, criamos uma fatia pegando uma parte do contêiner de dados existente. Não podemos criar uma fatia como faria uma variável normal.

Para criar uma fatia, especificamos o índice inicial e final dentro de um par de colchetes quadrados. O índice de partida e final é separado usando a notação de ponto duplo.

Podemos expressar esta sintaxe como mostrado:

deixe algum_string = "value";
& Some_String [start_index… end_index];

Observe que podemos cortar qualquer coleção válida em ferrugem. Veja o exemplo abaixo que cria uma fatia de um tipo de string.

fn main ()
deixe url = "linuxhint.com ";
Deixe Slice = & URL [0… 9];
println!("", fatiar);

O código acima cria uma fatia de uma string a partir do índice 0 ao índice 9. Observe que o último é exclusivo. Isso significa que a fatia conterá o valor do índice de início ao fim - 1.

Observe o Operador? Isso ocorre porque a fatia é uma referência aos dados reais na coleção especificada.

O código acima deve retornar:

Rust também nos permite pular o índice inicial e final. Por exemplo, se estivermos iniciando a fatia do índice 0, podemos omitir o 0 e apenas definir o índice final. Um exemplo é como mostrado:

fn main ()
deixe url = "linuxhint.com ";
Deixe Slice = & URL [… 9];
println!("", fatiar);

Observe que o exemplo acima define o intervalo de índice como… 9. Isso significa começar do índice 0 ao índice 9.

Podemos fazer o mesmo para o Índice de Ending. Considere o código de exemplo mostrado abaixo:

fn main ()
deixe url = "linuxhint.com ";
Deixe Slice = & URL [9…];
println!("", fatiar);

Isso deve retornar:

Além de uma corda, você pode ter uma fatia de uma matriz. Um exemplo é como mostrado abaixo:

fn main ()
deixe arr = [100.200.300.400.500];
Deixe Slice = & arr [1… 3];
println!(":?", fatiar);

Isso deve retornar uma fatia de matriz com os valores no intervalo especificado.

[200, 300]

Podemos cortar um vetor como mostrado:

fn main ()
Deixe VEC = VEC!["A", "B", "C", "D", "E"];
Deixe Slice = & Vec [1… = 4];
println!(":?", fatiar);

Fatia mutável

Também podemos criar fatias mutáveis ​​definindo a palavra -chave mut em uma fatia. Um exemplo é como mostrado:

fn main ()
deixe arr = [100.200.300.400.500];
Deixe Mut Slice = & arr [1… 3];
println!(":?", fatiar);

Você pode mudar a matriz devolvida como você achar melhor.

Conclusão

Este guia abrange os fundamentos de trabalhar com fatias na linguagem de ferrugem. Você pode verificar a documentação para explorar mais.

Obrigado pela leitura!