Кортежні структури

Якщо імена полів неважливі, ви можете використати структуру кортежу:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Це часто використовується для обгорток з одним полем (так званих newtypes):

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 10 minutes.
  • Newtypes — чудовий спосіб закодувати додаткову інформацію про значення в примітивному типі, наприклад:
    • Число вимірюється в деяких одиницях: у наведеному вище прикладі Newtons.
    • Значення пройшло певну перевірку під час створення, тому вам більше не потрібно перевіряти його знову при кожному використанні: PhoneNumber(String) або OddNumber(u32).
  • Продемонструйте, як додати значення f64 до типу Newtons, отримавши доступ до єдиного поля в newtype.
    • Rust зазвичай не любить неявних речей, таких як автоматичне розгортання або, наприклад, використання логічних значень як цілих чисел.
    • Перевантаження операторів обговорюється в день 3 (дженерики).
  • Цей приклад є тонким посиланням на невдачу Mars Climate Orbiter.