web-dev-qa-db-fra.com

Méthodes F #, Split String et .Net

Je suis nouveau sur F #. J'utilise VS2008 Shell et F # interactive. J'essaie de diviser une chaîne à l'aide de "System.String.Split" mais j'obtiens ensuite l'erreur: "Le fractionnement n'est pas une méthode statique"

exemple de code:

let Count text =
    let words = System.String.Split [' '] text
    let nWords = words.Length
    (nWords)

Comment utiliser les méthodes String comme le fractionnement en F #?

42
Neo

Vous les appelez comme méthodes d'instance:

let Count (text : string) =
  let words = text.Split [|' '|]
  let nWords = words.Length
  (nWords)

(Notez que vous devez utiliser [| |] Car Split prend un tableau et non une liste; ou, selon le commentaire de Joel Mueller, parce que Split prend un tableau de paramètres, vous pouvez simplement passer les délimiteurs comme arguments séparés (par exemple text.Split(' ', '\n')).)

53
itowlson

La fonction String.split est maintenant définie dans le Power Pack F #. Vous devez ajouter

#r "FSharp.PowerPack.dll";; 
#r "FSharp.PowerPack.Compatibility.dll";; 

Voir les errata pour Expert F #: http://www.expert-fsharp.com/Updates/Expert-FSharp-Errata-Jan-27-2009.pdf

Obtenez FSharp.PowerPack.dll ici: http://fsharppowerpack.codeplex.com/

6
1-2-3