Na ferrugem, podemos determinar o tamanho de um tipo específico usando a função size_of. Esta função está em Core :: Mem :: size_of e pega um tipo e retorna seu tamanho em bytes.
Vamos aprender a usar a função size_of para determinar o tamanho de vários tipos de ferrugem.
Tamanho da ferrugem dos tipos primitivos
Podemos determinar o tamanho dos tipos primitivos de ferrugem usando a função size_of. A sintaxe geral da função size_of é como mostrado abaixo:
pub const fn size_ofComo mencionado, a função retornará o tamanho do tipo especificado em bytes. Estados de ferrugem O tamanho de um tipo não é estável em compilações cruzadas, exceto para tipos primitivos.
Vamos usar o exemplo a seguir para determinar o tamanho de um tipo booleano:
Use std :: Mem;O programa de exemplo importa o módulo de memória da biblioteca padrão. Isso nos dá acesso à função size_of para determinar o tamanho de um bool.
Em seguida, chamamos a função dentro do método println e retornamos o tamanho de um tipo booleano.
A saída resultante é como mostrado abaixo:
$ Cargo RunPodemos fazer isso para todos os outros tipos primitivos em ferrugem. Um exemplo é fornecido abaixo:
Use std :: Mem;O programa simples acima mencionado determina o tamanho de todos os tipos primitivos na linguagem ferrugem. Um exemplo de saída resultante é como mostrado:
Tamanho de Bool: 1 byteTamanho da ferrugem da estrutura
Na ferrugem, o tamanho das estruturas é determinado por um algoritmo simples:
Você pode aprender mais sobre o alinhamento no recurso fornecido abaixo:
https: // doc.Ferrute.org/stable/std/mem/fn.align_of.html
Um exemplo do tamanho de uma estrutura é como mostrado abaixo:
Usuário de estruturaO código anterior deve retornar o tamanho da estrutura como:
$ Cargo RunTamanho de ferrugem da matriz
Também podemos usar o método size_of para determinar o tamanho de uma matriz. Considere o exemplo fornecido abaixo:
println!("O tamanho da matriz é: bytes", mem :: size_of ::<[i32; 5]>())O exemplo anterior determina o tamanho de uma matriz de tipos i32 e um comprimento de 5. A matriz equivalente é como mostrado abaixo:
Deixe my_array: [i32; 5] = [1,2,3,4,5];O programa deve retornar o tamanho da matriz como:
O tamanho da matriz é: 20 bytesTamanho da ferrugem do ponteiro
O exemplo a seguir avalia o tamanho de um ponteiro usando a sintaxe:
println!("Tamanho do ponteiro bytes", mem :: size_of ::<*const i32>());O código anterior retorna o tamanho de um ponteiro bruto em uma referência i32. A saída resultante é fornecida abaixo:
Tamanho de Pointer8 bytesConclusão
Este artigo descreve como determinar o tamanho de vários tipos de ferrugem, incluindo tipos primitivos, matrizes, ponteiros e estruturas. Além disso, a função size_of foi discutida em detalhes. Esperamos que você tenha achado este artigo útil. Verifique o outro artigo da dica do Linux para obter mais dicas e artigos.