L'utilisation Seq.cast
semble échouer en permanence, même pour quelque chose d'aussi simple que ce qui suit:Problème d'utilisation Seq.cast
let xor c = Seq.cast c |> Seq.reduce (^^^)
xor [1;3] // Works, assuming because no cast is necessary
xor ['a';'b'] // Fails
xor [2u] // Fails
Les deux derniers ne CAST indiqué est incorrect. Qu'est-ce que je rate?
Je suis en train d'utiliser Seq.cast
pour convertir un tas de choses à uint16
, mais pour une raison quelconque, il ne parvient pas toujours (même si j'annoter avec Seq.cast<uint32>
). Qu'est-ce qui se passe avec ça?
Oh je vois. Seq.cast essaie de lancer le conteneur et non son contenu – gradbot
Pas tout à fait: while 'Seq.cast ['a'; 'b'] 'lance le' char seq' en un 'uint32 seq' (avec succès, même), l'erreur survient quand les valeurs sont énumérées: quand la propriété' IEnumerable .Current' est lue, elle essaie et échoue à lancer le 'char' dans un' uint32', quand il a besoin de le contraindre, avec la fonction 'uint32'. –
Je voulais dire 'IEnumerator', pas' IEnumerable' bien sûr. Si ce n'est pas clair, 'Seq' est juste un alias pour' IEnumerable'. –