F#模塊

2018-12-16 16:02 更新

根據(jù)MSDN庫(kù),F(xiàn)#模塊是F#代碼結(jié)構(gòu)的分組,例如類(lèi)型,值,函數(shù)值和do綁定中的代碼。 它被實(shí)現(xiàn)為只有靜態(tài)成員的公共語(yǔ)言運(yùn)行時(shí)(CLR)類(lèi)。
根據(jù)整個(gè)文件是否包含在模塊中的情況,有兩種類(lèi)型的模塊聲明:
1、頂層模塊聲明
2、本地模塊聲明
在頂層模塊聲明中,整個(gè)文件包含在模塊中。 在這種情況下,文件中的第一個(gè)聲明是模塊聲明。 您不必在頂層模塊中縮進(jìn)聲明。
在本地模塊聲明中,只有在該模塊聲明下縮進(jìn)的聲明是模塊的一部分。

語(yǔ)法

模塊聲明的語(yǔ)法如下 

// Top-level module declaration.
module [accessibility-modifier] [qualified-namespace.]module-name
   declarations
// Local module declaration.
module [accessibility-modifier] module-name =
   declarations

請(qǐng)注意,可訪問(wèn)修飾符可以是下列之一:公共,私有或內(nèi)部的。默認(rèn)為公開(kāi) 。

下面的實(shí)例將展示其中的概念 

例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

當(dāng)你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 

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

當(dāng)你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 

125
325
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)