javascript是检查参数的更好方法吗?
在各种情况下,我都会遇到这样的问题:我需要检查函数的参数,以确保程序流程正确
我发现创建if-else块只是为了检查null指针、数字范围、正确的字符串、正确的对象等等,这变得有点乏味。此外,代码变得更难阅读,因此更难获得概述
所以我想,如果java/javascript/c#中有一种方法。。。(包含函数的编程语言)可以定义一些前置条件
例如,在java中:
void doSomething( int a {0 <= a < 10}, String b {b != "wrong" && b != [1-9]}){
...
}
或者像这样:
§a: 0 <= a && 10 > a || a == 25 ...
§b: ...
§ifWrongPreConditions: return; //or throw a new default Exception or whatever
void doSomething( int a, String b){
§a: 0 <= a && 10 > a || a == 25 ...
§b: ...
§ifWrongPreConditions: return; //or throw a new default Exception or whatever
...Code...
}
或者在方法头部以上。 基本上,第二个想法也可以帮助解决后置条件,你只需要看一眼函数,就知道你需要做什么,这样函数才能正常工作
但我不确定是否已经实施了类似的措施, 但是我想让它更容易成为一个函数的“元信息”的概述,这样可以预测期望的和不期望的行为,并且可能更容易使它与OCL一起工作
那么回到问题上来:有没有一种好的方法来定义前置条件、后置条件,或者方法(可能是类和类似的东西)的不变量,这些方法在各自的语言中易于阅读
(另外,我不确定我在这里设置的标签是否“正确”,因为对于不同的语言来说,这是一个实用的问题,关于这些语言的程序员可能会遇到的一个概念。对此我深表歉意)
# 1 楼答案
Java在JDK中没有参数验证功能。 然而,有specification for Bean Validation具有类似的能力。还有实现上述规范的第三方库和框架。流行的框架之一是Spring,它有一个用于基于注释的Validation的模块
以下是此类验证的示例: