【发布时间】:2011-01-17 06:58:38
【问题描述】:
F# 允许通过打开 Checked 模块来使用检查算术,该模块将标准运算符重新定义为检查运算符,例如:
open Checked
let x = 1 + System.Int32.MaxValue // overflow
会导致算术溢出异常。
但是如果我想在一些小范围内使用检查算术怎么办,比如 C# 允许使用关键字 checked:
int x = 1 + int.MaxValue; // ok
int y = checked { 1 + int.MaxValue }; // overflow
如何通过打开Checked模块来控制算子重定义的范围或者尽可能的变小?
【问题讨论】:
-
相反,是否可以在 C# 项目中的所有语句上调用“checked”?
-
@Heath Hunnicutt - 反过来可以通过编译器选项来完成,无论是在 IDE 中还是在命令行中。
标签: f# module scope operators math