|
Il presente articolo è stato tradotto manualmente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
|
Traduzione
Originale
|
Classi (F#)
// Class definition:
type [access-modifier] type-name [type-params] [access-modifier] ( parameter-list ) [ as identifier ] =
[ class ]
[ inherit base-type-name(base-constructor-args) ]
[ let-bindings ]
[ do-bindings ]
member-list
...
[ end ]
// Mutually recursive class definitions:
type [access-modifier] type-name1 ...
and [access-modifier] type-name2 ...
...
type MyClass1(x: int, y: int) = do printfn "%d %d" x y new() = MyClass1(0, 0)
type MyClass2(dataIn) as self = let data = dataIn do self.PrintMessage() member this.PrintMessage() = printf "Creating MyClass2 with Data %d" data
type MyGenericClass<'a> (x: 'a) = do printfn "%A" x
let g1 = MyGenericClass( seq { for i in 1 .. 10 -> (i, i*i) } )
open System.IO type Folder(pathIn: string) = let path = pathIn let filenameArray : string array = Directory.GetFiles(path) member this.FileArray = Array.map (fun elem -> new File(elem, this)) filenameArray and File(filename: string, containingFolder: Folder) = member this.Name = filename member this.ContainingFolder = containingFolder let folder1 = new Folder(".") for file in folder1.FileArray do printfn "%s" file.Name