F #-모듈
MSDN 라이브러리에 따라 F # 모듈은 do 바인딩의 형식, 값, 함수 값 및 코드와 같은 F # 코드 구문의 그룹입니다. 정적 멤버 만있는 CLR (공용 언어 런타임) 클래스로 구현됩니다.
전체 파일이 모듈에 포함되는지 여부에 따라 두 가지 유형의 모듈 선언이 있습니다.
- 최상위 모듈 선언
- 로컬 모듈 선언
최상위 모듈 선언에서는 전체 파일이 모듈에 포함됩니다. 이 경우 파일의 첫 번째 선언은 모듈 선언입니다. 최상위 모듈에서 선언을 들여 쓸 필요가 없습니다.
로컬 모듈 선언에서 해당 모듈 선언 아래에 들여 쓰기 된 선언 만 모듈의 일부입니다.
통사론
모듈 선언 구문은 다음과 같습니다.
// Top-level module declaration.
module [accessibility-modifier] [qualified-namespace.]module-name
declarations
// Local module declaration.
module [accessibility-modifier] module-name =
declarations
접근성 수정자는 공개, 비공개, 내부 중 하나 일 수 있습니다. 기본값은public.
다음 예제는 개념을 보여줍니다-
예 1
모듈 파일 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
프로그램 파일 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
프로그램을 컴파일하고 실행하면 다음과 같은 출력이 생성됩니다.
34
16
225
2
110
90
1000
10
예 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
프로그램을 컴파일하고 실행하면 다음과 같은 출력이 생성됩니다.
125
325