type-safety相关内容

Scala-slick-获取包装选项的TyedType[T]

通常会这样创建自定义ID: case class CustomID(value: Int) extends MappedTo[Int] 并使用Option[CustomID]等类型表示可为空的自定义ID。但是,我希望能够将选项[_]移到Case类中,如下所示: case class OptCustomID(optValue: Option[Int]) 更具体地说,我正在寻找与数 ..
发布时间:2022-08-27 23:24:50 其他开发

如何创建类型安全的枚举?

在 C 中使用枚举实现类型安全是有问题的,因为它们本质上只是整数.并且枚举常量实际上被标准定义为 int 类型. 为了实现一点类型安全,我用这样的指针做技巧: typedef 枚举{蓝色,红色的} 颜色_t;void color_assign (color_t* var, color_t val){*var = val;} 因为指针的类型规则比值更严格,所以这可以防止这样的代码: in ..
发布时间:2021-12-29 16:08:57 其他开发

泛型类型转换 FROM 字符串

我有一个类,我想用它来存储另一个类的“属性".这些属性只有一个名称和一个值.理想情况下,我想要的是能够添加 typed 属性,以便返回的“值"始终是我想要的类型. 类型应该始终是原始类型.这个类是一个抽象类的子类,它基本上将名称和值存储为字符串.这个想法是这个子类将为基类添加一些类型安全(以及节省我的一些转换). 所以,我创建了一个类,它(大致)是这样的: public class ..
发布时间:2021-12-15 09:52:15 C#/.NET

Int 与 Word 常用吗?

似乎获取/返回Int(即ByteString.hGet和Data.List.length)的常见模式与使用强描述类型的 Haskell 模式,因为其中许多情况只能处理正数.使用 Word 不是更好,还是这些函数偏向于 Int? 解决方案 Haskell 类型系统的表现力确实鼓励用户为他们定义的实体分配精确的类型.然而,经验丰富的 Haskells 很容易承认,必须在最终类型精度(此外,鉴于 ..
发布时间:2021-12-14 12:36:03 其他开发

模板 typedefs - 你的工作是什么?

C++ 0x 具有模板别名(有时称为模板 typedef).请参阅此处.C++ 的当前规范没有. 你喜欢用什么来解决?容器对象还是宏?你觉得值得吗? 解决方案 你喜欢用什么来解决?容器对象还是宏?你觉得值得吗? 规范的方法是使用像这样的元函数: template 结构 my_string_map {typedef std::map类型;};//调用:my_string_m ..
发布时间:2021-12-13 18:47:52 C/C++开发

在 C# 中,为什么不能使用 Listobject 存储在 List 中.多变的
似乎 List 对象不能存储在 C# 中的 List 变量中,甚至不能以这种方式显式转换. Listsl = new List();列表哦;ol = sl; 导致无法将类型System.Collections.Generic.List 隐式转换为System.Collections.Generic.List 然后…… Listsl = new List();列表哦;ol = (List ..
发布时间:2021-12-01 09:40:39 C#/.NET

新关键字“自动";什么时候应该用它来声明一个变量类型?

可能的重复: C++0x auto 关键字太多了 我们(作为一个社区)是否有足够的经验来确定汽车何时和/或是否被滥用? 我真正想要的是关于 的最佳实践指南 何时使用自动 什么时候应该避免 可以在 80% 的情况下快速遵循的简单经验法则. 作为上下文,这个问题是由我的回答引发的 这里 解决方案 我认为当在您的项目中工作(或将工作)的协同程序员非常熟悉该类型时, ..
发布时间:2021-11-30 18:11:17 C/C++开发

sizeof(array)/sizeof(array[0])有什么问题吗?

我的一位同事最近说上面的语句不是类型安全的,我应该使用其他的东西,因为你需要尽可能多的类型安全结构来减少可能的错误数量. 虽然我同意类型安全,但我有点困惑,因为这是有问题的代码类型(仅修改了 data[] 的内容和长度) unsigned char data[] = {1,2,3,4,5};int data_len = sizeof(data)/sizeof(data[0]); 类型不安 ..
发布时间:2021-11-18 04:41:51 C/C++开发

使用 Rust 编译器防止忘记调用方法

我有一些这样的代码: foo.move_right_by(10);//做一些事情foo.move_left_by(10); 我最终执行这两个操作真的很重要,但我经常忘记在第一个之后执行第二个.它会导致很多错误,我想知道是否有一种惯用的 Rust 方法来避免这个问题.有没有办法让 Rust 编译器在我忘记时让我知道? 我的想法是可能以某种方式拥有这样的东西: //must_use 将防止 ..
发布时间:2021-11-15 20:59:55 其他开发

角度组件的类型

我可以将角度组件类称为类型吗?我看到 Ionic 使用 any 作为组件.是否可以在 Typescript 中声明一个只需要组件类的参数类型? 我看到了这个问题,但是组件在构造函数中没有任何共同点:将类作为参数传递会导致“不可更新"错误 解决方案 事实证明,目前这在 TypeScript 中是不可能的.装饰器不能改变类的类型,这意味着它们对于类型系统是不可见的. 更多信息可以在这里 ..
发布时间:2021-11-04 11:53:31 其他开发