F # - Modul
Sesuai pustaka MSDN, modul F # adalah pengelompokan konstruksi kode F #, seperti tipe, nilai, nilai fungsi, dan kode dalam pengikatan. Ini diimplementasikan sebagai kelas runtime bahasa umum (CLR) yang hanya memiliki anggota statis.
Bergantung pada situasinya apakah seluruh file termasuk dalam modul, ada dua jenis deklarasi modul -
- Deklarasi modul tingkat atas
- Deklarasi modul lokal
Dalam deklarasi modul tingkat atas, seluruh file disertakan dalam modul. Dalam hal ini, deklarasi pertama dalam file tersebut adalah deklarasi modul. Anda tidak harus membuat deklarasi indentasi di modul tingkat atas.
Dalam deklarasi modul lokal, hanya deklarasi yang diindentasi di bawah deklarasi modul itu yang merupakan bagian dari modul.
Sintaksis
Sintaks untuk deklarasi modul adalah sebagai berikut -
// Top-level module declaration.
module [accessibility-modifier] [qualified-namespace.]module-name
declarations
// Local module declaration.
module [accessibility-modifier] module-name =
declarations
Harap dicatat bahwa pengubah aksesibilitas dapat menjadi salah satu dari yang berikut - publik, pribadi, internal. Standarnya adalahpublic.
Contoh berikut akan menunjukkan konsep -
Contoh 1
File modul Arithmetic.fs -
module Arithmetic
let add x y =
x + y
let sub x y =
x - y
let mult x y =
x * y
let div x y =
x / y
File program main.fs -
// Fully qualify the function name.
open Arithmetic
let addRes = Arithmetic.add 25 9
let subRes = Arithmetic.sub 25 9
let multRes = Arithmetic.mult 25 9
let divRes = Arithmetic.div 25 9
printfn "%d" addRes
printfn "%d" subRes
printfn "%d" multRes
printfn "%d" divRes
Ketika Anda mengkompilasi dan menjalankan program, itu menghasilkan output berikut -
34
16
225
2
110
90
1000
10
Contoh 2
// Module1
module module1 =
// Indent all program elements within modules that are declared with an equal sign.
let value1 = 100
let module1Function x =
x + value1
// Module2
module module2 =
let value2 = 200
// Use a qualified name to access the function.
// from module1.
let module2Function x =
x + (module1.module1Function value2)
let result = module1.module1Function 25
printfn "%d" result
let result2 = module2.module2Function 25
printfn "%d" result2
Ketika Anda mengkompilasi dan menjalankan program, itu menghasilkan output berikut -
125
325