加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 提升和类型安全

发布时间:2020-12-16 18:30:00 所属栏目:安全 来源:网络整理
导读:我现在正在学习Lift.当我阅读有关模板的内容时,我知道他们有许多在编译时没有进行类型检查的东西: 模板可能包含对不存在的代码段的引用 SiteMaps可能会引用不存在的页面 代码段调度方法采用字符串参数,我们可以很容易地输入错字 是否有任何替代方案可以使这
我现在正在学习Lift.当我阅读有关模板的内容时,我知道他们有许多在编译时没有进行类型检查的东西:

>模板可能包含对不存在的代码段的引用
> SiteMaps可能会引用不存在的页面
>代码段调度方法采用字符串参数,我们可以很容易地输入错字

是否有任何替代方案可以使这些问题不那么严重,即图书馆中的外部代码检查程序或选项允许以类型安全的方式执行相同操作?或者可能存在另一个在这种关系中更严格的Web框架(可能是其他语言).

解决方法

类型检查是强类型语言(如 Scala或 Java)的编译时功能,允许验证签名和类型之间的关系.当需要Meat类型的参数时,这样的检查将阻止您传递Banana类型的参数,或者将String分配给Int类型的变量.通常,在 Ruby或 Javascript等动态语言中,这是不可能的

您要找的不是类型检查器.您不希望验证您的程序在语法上是否正确,而是确保其行为正确,并且其解决方案称为自动化测试.

你完全能够编写语法正确但行为错误的代码:

public boolean isTrue(boolean value){
        return !value;
}

如果你认为反过来,你如何测试编译时需要填充一些数据的模板的正确性?

<!-- importing a snippet depending on the value of a variable -->
 <import src="${snippetName}.xml"/>

你不能,因为编译时你的所有变量都没有任何价值.这就是为什么自动化测试很重要,为您的应用程序编写测试用例不能被编译时检查所取代.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读