- F# 基础教程
- F# - 主页
- F# - 概述
- F# - 环境设置
- F# - 程序结构
- F# - 基本语法
- F# - 数据类型
- F# - 变量
- F# - 运算符
- F# - 决策
- F# - 循环
- F# - 函数
- F# - 字符串
- F# - 选项
- F# - 元组
- F# - 记录
- F# - 列表
- F# - 序列
- F# - 集
- F# - 地图
- F# - 受歧视的工会
- F# - 可变数据
- F# - 数组
- F# - 可变列表
- F# - 可变字典
- F# - 基本 I/O
- F# - 泛型
- F# - 代表
- F# - 枚举
- F# - 模式匹配
- F# - 异常处理
- F# - 类
- F# - 结构
- F# - 运算符重载
- F# - 继承
- F# - 接口
- F# - 事件
- F# - 模块
- F# - 命名空间
- F# 有用资源
- F# - 快速指南
- F# - 有用的资源
- F# - 讨论
F# - 模块
根据 MSDN 库,F# 模块是一组 F# 代码构造,例如类型、值、函数值和 do 绑定中的代码。它被实现为仅具有静态成员的公共语言运行时 (CLR) 类。
根据整个文件是否包含在模块中的情况,有两种类型的模块声明 -
- 顶级模块声明
- 本地模块声明
在顶级模块声明中,整个文件都包含在模块中。在这种情况下,文件中的第一个声明是模块声明。您不必在顶级模块中缩进声明。
在本地模块声明中,只有在该模块声明下缩进的声明才是模块的一部分。
句法
模块声明的语法如下 -
// Top-level module declaration. module [accessibility-modifier] [qualified-namespace.]module-name declarations // Local module declaration. module [accessibility-modifier] module-name = declarations
请注意,可访问性修饰符可以是以下之一 - 公共、私有、内部。默认是公开的。
以下示例将演示这些概念 -
实施例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