ile eşleştirerek karşılaştırarak Öncelikle, kötü başlıktan özür dilerim - sorunu daha iyi tanımlamak için yeterince F # anlamıyorum.F # ayrımcılıklı sendika örneklerini
bu basit DU düşünün:
type Money =
| USD of decimal
| GBP of decimal
| EUR of decimal
static member (+) (first: Money, second: Money) =
match first, second with
| USD(x), USD(y) -> USD(x + y)
| GBP(x), GBP(y) -> GBP(x + y)
| EUR(x), EUR(y) -> EUR(x + y)
| _ -> failwith "Different currencies"
farklı para birimlerinde para temsil ve güvenle Para + Para yapmak, böylece (+) operatörü aşırı ediyorum. Ancak, çok sayıda para birimim varsa, eşleşme ifadesi yazmak için can sıkıcı olacaktır.
match first, second with
| _(x), _(y) -> _(x + y)
Veya aynı sonucu elde etmek farklı bir yolu vardır: Böyle bir şey ifade edecek bir yolu var mı? here tarif edilen sınırlamalar nedeniyle ölçü birimlerini düşündüm ve attım.
F # biriminde bunun için ölçü birimlerini kullanmıyor musunuz? –
Ölçü birimlerini kullanmayı çok isterim, ancak ölçüm çalışma zamanında silindiği için harici kaynaklardan veri okurken bana herhangi bir güvenlik sunmuyor (bağlantılı soruya bakın). Yanlış olduğunu kanıtlamak isterim! – Akash