Bu kod OCaml yanı sıra F # gayet derler:Bu F #/OCaml "eşleşmesi" ifadesi neden derleniyor?
let testmatch k =
match k with
| jqk3jtl23jtlk123 -> true
Ben FSI ve Utop hem de test ettik. Her zaman true
döndürür.
jqk3jtl23jtlk123
tamamen rastgeledir ve türü 'a
olarak çıkarılmıştır. Bir veri türü ile k
sınırlamak bile (örneğin let testmatch (k: int) =
) o (derler açıkçası int -> bool
yerine 'a -> bool
için testmatch
'ın türü zorlayıcı olsa
birisi neler olduğunu açıklayabilir misiniz Özellikle:.?
- niçin derleyici kabul tamamen rastgele literal
jqk3jtl23jtlk123
? - ben neden bir inexhaustive maç uyarı alırım?
- aslında? yaptığını maçı ne
Sen k' ne olursa olsun 'maçları' jqk3jtl23jtlk123' adında bir değeri oluştururken, değer 'jqk3jtl23jtlk123' karşı eşleşen değiliz eşdeğerdir. – Marth
Bu dillerde genellikle ya bir değer ifadesinde ya da desen eşleme ifadesinde olursunuz ve bu ikisi farklı davranır. Desen eşleştirmesi, 'ile eşleştirildikten sonra, 'işlevinden sonra ve herhangi bir işlev/yöntem parametresinde olur. – TheQuickBrownFox