Structs de Tuplas

Se os nomes dos campos nĂŁo forem importantes, vocĂȘ pode usar uma struct de tupla:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Isso Ă© comumente utilizado para wrappers (invĂłlucros) com campo Ășnico (chamados newtypes):

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 10 minutes.
  • Newtypes sĂŁo uma Ăłtima maneira de codificar informaçÔes adicionais sobre o valor em um tipo primitivo, por exemplo:
    • O nĂșmero Ă© medido em algumas unidades: Newtons no exemplo acima.
    • O valor passou por alguma validação quando foi criado, entĂŁo nĂŁo Ă© preciso validĂĄ-lo novamente a cada uso: PhoneNumber(String) ou OddNumber(u32).
  • Demonstre como somar um valor f64 em um valor do tipo Newtons acessando o campo Ășnico no newtype.
    • Geralmente, Rust nĂŁo gosta de coisas implĂ­citas, como unwrapping automĂĄtico ou, por exemplo, usar booleanos como inteiros.
    • Sobrecarga de operadores Ă© discutido no Dia 3 (genĂ©ricos).
  • O examplo Ă© uma referĂȘncia sutil a falha do Orbitador ClimĂĄtico de Marte.