j'étais sous l'impression que F # les deux lignes suivantes sont censées donner des résultats identiques:F opérateur # chaîne explose sur GUIDs
let a = string v
let a = v.ToString()
Il est implicite que v est un objet. Il se avère que si v est un System.Guid la première ligne juste une exception jette:
System.FormatException occurred
Message="Format String can be only \"D\", \"d\", \"N\", \"n\", \"P\", \"p\", \"B\" or \"b\"."
Source="mscorlib"
StackTrace:
at System.Guid.ToString(String format, IFormatProvider provider)
InnerException:
Je peux certainement faire face à Guids séparément, la question est ce que les autres objets vont me donner le même problème? Dois-je éviter d'utiliser l'opérateur de chaîne du tout? Dans mon cas, l'objet peut potentiellement être quelque chose
Alors F # va contourner le bug, mais le bug lui-même ne sera pas corrigé? –
Droite. (Si l'équipe qui possède System.Guid a déjà réussi à expédier ce bug apparent 5 fois au cours des 7 dernières années, il semble peu probable qu'ils vont le réparer maintenant.) – Brian
Maintenant * c'est * ce que j'appelle la programmation fonctionnelle du monde réel . ;-) –