Итак, я получил запись в своем путешествии по F #, и сначала они кажутся довольно опасными. Сначала это казалось умным:
type Card = { Name : string;
Phone : string;
Ok : bool }
let cardA = { Name = "Alf" ; Phone = "(206) 555-0157" ; Ok = false }
Идея, что cardA сопоставляется с Картой. Не говоря уже об упрощенном сопоставлении шаблонов:
let withTrueOk =
list
|> Seq.filter
(function
| { Ok = true} -> true
| _ -> false
)
Проблема:
type Card = { Name : string;
Phone : string;
Ok : bool }
type CardTwo = { Name : string;
Phone : string;
Ok : bool }
let cardA = { Name = "Alf" ; Phone = "(206) 555-0157" ; Ok = false }
cardA теперь имеет тип CardTwo, который, как я предполагаю, связан с тем, что F # работает в порядке.
Теперь это может быть невозможной ситуацией, так как никогда не может быть случая, когда одна и та же подпись берет два типа, но это возможность.
Является ли запись того, что имеет ограниченное использование, или я просто думаю об этом?