F # - Mô-đun
Theo thư viện MSDN, mô-đun F # là một nhóm các cấu trúc mã F #, chẳng hạn như kiểu, giá trị, giá trị hàm và mã trong các ràng buộc thực hiện. Nó được triển khai như một lớp thời gian chạy ngôn ngữ chung (CLR) chỉ có các thành viên tĩnh.
Tùy thuộc vào tình huống toàn bộ tệp có được bao gồm trong mô-đun hay không, có hai loại khai báo mô-đun:
- Khai báo mô-đun cấp cao nhất
- Khai báo mô-đun cục bộ
Trong khai báo mô-đun cấp cao nhất, toàn bộ tệp được bao gồm trong mô-đun. Trong trường hợp này, khai báo đầu tiên trong tệp là khai báo mô-đun. Bạn không phải thụt lề khai báo trong mô-đun cấp cao nhất.
Trong khai báo mô-đun cục bộ, chỉ các khai báo được thụt vào trong khai báo mô-đun đó là một phần của mô-đun.
Cú pháp
Cú pháp khai báo mô-đun như sau:
// Top-level module declaration.
module [accessibility-modifier] [qualified-namespace.]module-name
declarations
// Local module declaration.
module [accessibility-modifier] module-name =
declarations
Xin lưu ý rằng công cụ sửa đổi trợ năng có thể là một trong những công cụ sau - công khai, riêng tư, nội bộ. Mặc định làpublic.
Các ví dụ sau đây sẽ chứng minh các khái niệm -
ví dụ 1
Tệp mô-đun 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
Tệp chương trình 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
Khi bạn biên dịch và thực thi chương trình, nó sẽ tạo ra kết quả sau:
34
16
225
2
110
90
1000
10
Ví dụ 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
Khi bạn biên dịch và thực thi chương trình, nó sẽ tạo ra kết quả sau:
125
325