Tipos de dados de ferrugem

Tipos de dados de ferrugem
Na ferrugem, todo valor tem seu tipo de dados. O tipo de dados diz ao compilador que tipo de valor é e como usá -lo. Embora a ferrugem seja uma linguagem tipada estaticamente, o que significa que o tipo de valor deve ser conhecido antes da compilação, Rust faz um trabalho incrível de inferir tipos com base no valor atribuído.

Os tipos de dados são uma característica universal entre muitas linguagens de programação e fornecem um sólido bloco de construção para os programas que construímos com ele. Lembre -se de que cada idioma tem seus próprios tipos que podem diferir de outros idiomas.

Como programadores, conhecer os vários tipos primitivos fornecidos por uma linguagem é mais do que crucial. Portanto, para este tutorial, passaremos pelos vários tipos da linguagem de programação de ferrugem.

Tipos primitivos de ferrugem

Existem duas categorias principais para tipos primitivos de ferrugem:

  1. Tipos escalares
  2. Tipos de compostos

No entanto, realmente não importa se um tipo é escalar ou composto, tudo o que você precisa saber é como usá -lo em seus programas.

Vamos começar com os tipos mais comuns e básicos em ferrugem:

Inteiros

A primeira categoria de tipos primitivos em ferrugem é inteiros. Um número inteiro é um tipo de número que não tem um valor fracionário. Existem vários tipos de tipos inteiros de ferrugem e incluem:

  1. i8
  2. U8
  3. I16
  4. U16
  5. i32
  6. U32
  7. i64
  8. U64
  9. I128
  10. U128
  11. Isize
  12. usize

Cada tipo inteiro leva o formato de:

carta

A carta neste caso indica se o número pode ter um sinal. Se o tipo for assinado (i), pode ter um valor negativo. Se não assinado (u), o número só será positivo.

O valor numérico representa o tamanho em bits que o tipo ocupará na memória. Por exemplo, um valor i32 representa um número inteiro assinado de 32 bits.

O tipo ISize ou USIZE dependerá da arquitetura em que o código está em execução. Se você estiver em arquitetura de 32 bits, o tipo ocupará 32 bits e 64 bits para arquiteturas de 64 bits.

OBSERVAÇÃO: Certifique -se de manter seus valores dentro do intervalo de seus tipos especificados. Caso contrário, você tem um estouro que pode levar a operações perigosas.

O programa de exemplo abaixo mostra como declarar e usar tipos inteiros em ferrugem.

fn main ()
// tipos inteiros
Seja i_8 = -128;
Seja u_8 = 127;
Seja i_16 = -32768;
Seja u_16 = 32767;
Seja i_32 = -2147483648;
Seja u_32 = 2147483647;
Seja i_64 = -9223372036854775808_i64;
Seja u_64 = 9223372036854775807_u64;
Seja i_128 = -170141183460469231731687303715884105728_i128;
Seja U_128 = 170141183460469231731687303715884105727_u128;
Seja i_size = -9223372036854775808_isize;
Seja u_size = 9223372036854775807_usize;
println!("I_8 -> \ nu_8 -> \ ni_16 -> \ nu_16 -> \ ni_32 -> \ nu_32 -> \ ni_64 -> \ ni_4 -4 -4 -4 -42 -> \ ni_64 -> \ ni_6 ni_128 -> \nu_128 -> \ni_size -> \nu_size -> ", i_8, u_8, i_16,u_16, i_32, u_32, i_64, u_64, i_128, u_128, i_size, u_size );

O programa acima mostra como declarar tipos int em ferrugem. Isso deve imprimir:

OBSERVAÇÃO: Se você não especificar o tipo ao atribuir um valor numérico, a ferrugem será inadimplente em um tipo i32.

Tipo flutuante

A ferrugem tem números do tipo flutuante. São números que incluem valores de ponto flutuante ou pontos decimais. Existem apenas dois tipos de tipos flutuantes em ferrugem: F32 e F64 que são valores de 32 e 64 bits.

Exemplo de tipo flutuante é como mostrado:

Seja f_32 = 3.141_F32; // tipo flutuante de 32 bits
Seja f_64 = 3.141; // tipo flutuante de 64 bits

Se você não especificar o tipo para um valor de ponto flutuante, a ferrugem padrão para o tipo F64.

Booleanos

O outro tipo fornecido pela ferrugem é um booleano. Como todos os valores lógicos booleanos, ele tem dois valores possíveis: verdadeiro ou falso. Um booleano é um byte de tamanho.

Exemplo é como mostrado:

Seja var1 = true;
Seja var2 = false;

Tipo de caractere

O tipo de personagem refere -se a um único caráter unicode. Tem 4 bytes de tamanho. Por exemplo, a seguir mostra vários tipos de tipos de char unicode.

deixe um = 'a';
deixe emoji = '' ';
Seja pi = 'π';
deixe -o grande = '' ';

Os exemplos de código acima representam vários caracteres unicode.

Matrizes

A segunda categoria de tipos primitivos em ferrugem é os tipos de compostos. Uma matriz faz parte do tipo composto.

Uma matriz refere -se a uma coleção ordenada de valores de tipos semelhantes. O código abaixo mostra uma matriz em ferrugem:

Deixe a carta: [&str; 5] = ["A", "B", "C", "D", "E"];

Em Rust, declaramos uma matriz usando a palavra-chave let seguida pelo nome da variável, um colon e o tipo e tamanho dentro de um suporte quadrado.

Fatias

As fatias são intimamente semelhantes às matrizes, exceto que são dinâmicas. Ao contrário de uma matriz, uma fatia pode crescer ou encolher de tamanho.

Um exemplo é como mostrado:

Seja SLC = [1,2,3,4,5];

Tuplas

O outro tipo de compostos tipos de dados em ferrugem é uma tupla. Uma tupla é definida uma sequência heterogênea de valores. Uma tupla pode conter valores de vários tipos, diferente de uma matriz. As tuplas também têm um pedido e podem ser acessadas através de seus índices. Verifique nosso tutorial sobre tuplas de ferrugem para saber mais.

Um exemplo de tupla de ferrugem é como mostrado abaixo:

Seja tup = (1,2,3,4,5); // sem anotação de tipo
Seja Tup_Letter: (i32, & str, f64, char) = (100, "Hello", 3.141, 'A'); // Anotação do tipo explícito

Na primeira tupla, deixamos o compilador de ferrugem para inferir o tipo com base nos valores fornecidos.

Para o segundo, dizemos explicitamente ao compilador quais tipos queremos. Lembre -se de que a ordem é importante nesse tipo de declaração.

Conclusão

A partir deste tutorial, você percebe que a ferrugem nos fornece um conjunto de tipos primitivos incríveis. Eles nos permitem lidar com vários tipos de dados e controlar os dados que entram ou fora de nossos aplicativos.

Obrigado pela leitura!