问题标签 [type-safety]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java N-Tuple 实现
我刚刚制作了一个类型安全的 Java n 元组。
我正在使用一些非常规的方法来实现类型安全(我只是为了好玩)。
有人可以就改进它或一些可能的缺陷提供一些意见。
python - Python 中的类型安全
我定义了一个Vector
具有三个属性变量的类x
:y
和z
。坐标必须是实数,但没有什么可以阻止您执行以下操作:
我可以像这样实现“类型安全”:
...但这似乎不是 Pythonic。
建议?
c# - 如何以通用类型安全的方式验证层次结构中的类?
我一开始就被一个看似非常简单的任务所困扰。我有一个类层次结构,每个类都可以在其中定义自己的验证规则。定义验证规则应该尽可能简单。这几乎是需要的:
还需要一件事 - 添加验证规则时的类型安全。否则每个子类将不得不做那些看起来很尴尬的演员表。理想情况下Func<T, bool>
会起作用,但有一大堆问题:我们不能HierarchyBase
从任何类型继承我们的,IValidatable<HierarchyBase>
因为继承层次结构可以是 N 级深(是的,我也感觉到气味);存储任何混凝土Func<HierarchyBaseInheritor, bool>
并rules
遍历它们。
您将如何在这里介绍类型安全?
java - 如何在 Java 中进行类型安全的 Xpath 查询?
我目前正在使用 JDOM 进行一些简单的 XML 解析,似乎没有什么是类型安全的 - 我在使用内置 Java DOM 解析器时遇到了类似的问题,只是需要处理更多的 API。
例如,XPath.selectNodes
以anObject
为参数,返回一个原始列表,感觉有点Java 1.1
是否有用于 Java 的通用化 XML 和 XPath 库,或者是否有某些原因无法以类型安全的方式进行 XPath 查询?
c# - 可能有编译器支持(类型安全)以避免在 Web 开发期间对反 XSS 进行双重编码?
是否可以让编译器支持强制清理数据(XSS 编码)?
这个问题让我想到了双重编码以及其他需要编码的时候。似乎它对 Linq 很有用,但可能我在其他情况下也可能需要这个功能。
php - PHP 对象及其函数
我现在正在使用 PHP 5,我很乐意在 PHP 5 中使用 OOP。我遇到了一个问题。我的课程很少,里面的功能也很少。很少有函数需要传递参数,这些参数是我自己编写的那些类的对象。我注意到参数不是严格输入的。有没有办法让它严格输入,以便在编译时我可以使用 Intellisense?
例子:
java - 为什么 Enum 被认为比常量更安全?
在我们的示例中,我们可以选择定义一个 Enumerated Type 来限制可能的分配值(即改进的类型安全性):
haskell - 在 Haskell 中生成 Haskell 类型的工具(“二阶 Haskell”)?
如果这个问题有点含糊,请提前道歉。这是一些周末白日梦的结果。
借助 Haskell 出色的类型系统,将数学(尤其是代数)结构表达为类型类非常令人愉快。我的意思是,看看numeric-prelude!但是在实践中利用这种奇妙的字体结构对我来说总是很困难。
您有一种很好的类型系统方式来表达它,v1
并且v2
是向量空间的元素,并且是向量空间V
的w
元素W
。类型系统允许您编写一个添加v1
and的程序v2
,但不能添加v1
and w
。伟大的!但在实践中,您可能想要使用可能有数百个向量空间,并且您当然不想创建类型V1
、V2
...、V100
并将它们声明为向量空间类型类的实例!或者,也许您从现实世界中读取了一些数据,从而产生了符号a
,b
并且c
-您可能想要表示这些符号上的自由向量空间确实是向量空间!
所以你被卡住了,对吧?为了在科学计算环境中做很多你想用向量空间做的事情,你必须放弃你的类型系统,先使用向量空间类型类,并让函数进行运行时兼容性检查。你应该这样做吗?难道不能利用 Haskell 是纯函数式的事实来编写一个程序来生成您需要的所有类型并将它们插入到实际程序中吗?这样的技术存在吗?一定要指出我是否只是在这里忽略了一些基本的东西(我可能是):-)
编辑:我刚刚发现fundeps。我将不得不考虑一下它们与我的问题的关系(对此有启发性的评论表示赞赏)。
java - 是 spring framework 3.0 类型安全的
在我问的另一个问题中,提出了 spring 框架不是类型安全的担忧。它是真的,还是固定的,你能举例说明它的确切含义吗?
c++ - 在 C++ 中键入安全(r)位标志?
在修改一些旧的 c++ 代码时,我遇到了几个定义为枚举的位标志。
这并不少见,但让我感到困扰的是,一旦您开始组合标志,您就会丢失类型信息。
对 SO 的一些搜索表明,我不是唯一 一个对此感到困扰的人。
一种替代方法是将标志声明为 #defines 或 const 积分,因此按位运算不会转换类型(可能)。这样做的问题是它允许我们的位集通过整数或其他枚举与不相关的标志混合。
我熟悉std::bitset和boost::dynamic_bitset,但两者都不是为了解决我的问题。我正在寻找的是类似于 C#'s FlagsAttribute的东西。
我的问题是,对于(更多)类型的安全位标志集,还有哪些其他解决方案?
我将在下面发布我自己的解决方案。