Fsharp Modules Fsharp Modules Fsharp Modules
Modules در #F
همانطور که در هر کتابخانه MSDN، در یک #module F یک گروه از ساختارهای کد #F است، مانند انواع تابع مقادیر، values و کد در do bindings. این کلاس به عنوان یک کلاس زبان مشترک (common language runtime (CLR که دارای اعضای استاتیک است اجرا می شود.
بسته به وضعیت که آیا کل فایل در ماژول گنجانده شده است، دو نوع اعلان ماژول وجود دارد.
- اعلان ماژول سطح بالا
- اعلامیه ماژول محلی
در یک اعلان ماژول سطح بالا کل فایل در ماژول گنجانده شده است. در این مورد، اولین اعلان در فایل اعلان ماژول است.
در یک اعلان ماژول محلی، تنها اعلان هایی که تحت آن اعلان ماژول قرار دارند، بخشی از ماژول هستند.
سینتکس
سینتکس توضیح ماژول در #F به شرح زیر است.
1 2 3 4 5 6 7 | // Top-level module declaration. module [accessibility-modifier] [qualified-namespace.]module-name declarations // Local module declaration. module [accessibility-modifier] module-name = declarations |
لطفا توجه داشته باشید که accessibility-modifier می تواند یکی از این موارد باشد – public, private, internal . پیش فرض public است .
مثال
فایل ماژول Arithmetic.fs
1 2 3 4 5 6 7 8 9 10 11 12 | 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
1 2 3 4 5 6 7 8 9 10 11 | // 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 |
خروجی
1 2 3 4 5 6 7 8 | 34 16 225 2 110 90 1000 10 |
مثال
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | // 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 |
خروجی
1 2 | 125 325 |