type-safety相关内容
我将 TypeScript 与 MongoDB node.js 驱动程序一起使用.请注意,这不是 Mongo 问题,它只是我遇到的这个问题的特定用例. 几乎每个 Mongo 调用都使用 (arg1, arg2, ..., argn, callback) 的模式,其中 callback 是一个接受 (错误,资源).但是,我想使用承诺.我试图通过编写一个辅助包装函数来简化我的用法,如下所示:
..
有没有办法在 PHP 中模拟结构类?即一个通过值而不是通过引用传递的类,所以它仍然可以被类型提示...... 如果是这样,可以使用哪些不同的技术?最好的技术是什么? 如果可以的话,您显然可以为 PHP 创建一个完全类型安全的层,是否有这样的层?有没有人有这方面的经验? 解决方案 对象总是通过引用传递.使它们作为副本传递的唯一方法是显式使用 clone 关键字(是的,无处不在).
..
在我的一个 C++ 项目中,我使用一个 vector 来保存一堆 struct ,这些 struct 保存了一个简单游戏的许多元素(即:tic-tac-toe、坐标、x 与 o 等).即: struct gameMove{整数 x;输入 y;国际球员;有序;}; 每次在单局游戏中,每当玩家进行移动(即:放置x 或o),信息都存储在向量中 通过 push_back(),创建一个“撤消"功能,目前
..
假设我已经索引了集合(List 或 Map 在这里无关紧要): val zipped = List(1 -> "A", 3 -> "C", 8 -> "D") 很难处理(因为每个操作,比如map,都必须处理index),所以我想传递给业务处理程序的是: case class Indexed[T](seq: Seq[T], i: Seq[Int])val unzipped = Indexed(
..
我正在设计带有 ADT 和 Aux-pattern 的类型安全代码并且无法摆脱一些 asInstanceOf.例子如下: 密封 trait Sourcecase 对象 FileSystem 扩展 Source案例对象网络扩展源密封性状数据{类型 S 列表(RegularFile("/tmp/test").asInstanceOf[Data.Aux[S]],Directory("/home/so
..
trait Footrait Bar 扩展了 Foodef doStuff[T 隐式解析发生在编译时,所以在这里我认为可能有两个具有完全相同类型的隐式值来触发模棱两可的东西. 现在,我要在团队中引入shapeless,我的同事认为这种含糊不清的隐式并不理想,我对此没有强烈的争论.这是为了使 Scala 中的类型安全而这样做的唯一方法吗?如果是,我该怎么做才能自定义错误消息? 编辑:
..
我正在编写一个类型安全的代码,并想用我自己的实现替换为 case classes 生成的 apply().这是: import shapeless._密封性状数据case 对象远程扩展数据case 对象本地扩展数据案例类 SomeClass(){类型 T 我想禁止 val t: SomeClass = SomeClass() 编译.除了不要 SomeClass 成为 case class 之
..
考虑以下涉及 Aux-pattern 的简单示例: 密封性状 AdtBase抽象案例类 Foo(){输入 T Scastie 我真的不明白为什么 testBaz 会编译.我也预计类型不匹配. 解决方案 似乎没有深层原因. 因为当您显式指定类型参数时,两种方法都会编译 def testBaz(baz: Baz) = Bar[baz.foo.T](baz.foo)//编译d
..
为什么 asInstanceOf 不抛出 ClassCastException ? scala>List("a").asInstanceOf[List[Int]]res34: List[Int] = List(a) 解决方案 来自 scaladoc: 请注意,运行时强制转换的成功是模 Scala 的擦除语义.因此表达式 1.asInstanceOf[String] 将在运行时抛出 Cl
..
我正在用 TypeScript 编写我的应用程序,并且我正在使用 Redux 来跟踪我的应用程序状态.我的 redux 存储状态如下所示: interface AppState {只读网格:IGridSettings;只读选择:ISelectedSettings;[键:字符串]:IGridSettings |ISelectedSettings;}接口 IGridSettings {只读范围:数字
..
关于 Swift 和 Cocoa 的问题之一是使用 NSUserDefaults,因为没有类型信息并且总是需要将 objectForKey 的结果转换为您期望的结果得到.这是不安全和不切实际的.我决定解决这个问题,让 NSUserDefaults 在 Swift-land 中更加实用,并希望在此过程中学到一些东西.这是我一开始的目标: 完整的类型安全:每个键都有一种与之关联的类型.设置值时,
..
是否有一种方法可以将抽象枚举声明为函数参数?我要实现的目标是: interface EnumInterpreterInterface {String getStringValue(**抽象枚举常量** e);}接口EnumProviderInterface {//实现此接口的类将至少包含一个枚举枚举getEnum();}EnumProvider类实现EnumProviderInterface
..
我有以下结构: #[derive(Debug)]pub struct条目{pub索引:usize,客栈名称:字符串,pub filename_offset:u64,pub entry_type:EntryType,}#[派生(调试)]pub枚举EntryType {文件 {file_offset:u64,长度:usize,},目录 {parent_index:使用,next_index:使用,}
..
在阅读《使用C ++编程原理和实践》这本书时,在第3章中指出我们不能直接将double与int进行比较.但是,当我在Visual Studios上对其进行测试时,它运行正常且没有错误?他不能将double与int进行比较是什么意思.后来,他解释说C ++提供了一种间接方式.他是说隐式转换吗? 解决方案 是的,存在隐式转换. 请考虑以下程序: bool f(){返回3 == 3.0
..
我在我正在评估的项目中遇到了一段代码,想知道以下类型的转换是否安全: void func(unsigned long *输入);...int数据= 42;func(reinterpret_cast(& data));//强制转换以删除有关数据类型与预期类型不匹配的编译器警告 我知道,仅通过简单的C样式转换(即(unsigned long *)& data
..
我有一些类似这样的代码: foo.move_right_by(10);//做点事foo.move_left_by(10); 最终执行这两个操作非常重要,但是我经常忘记执行第二个操作.它会导致很多错误,我想知道是否存在一种惯用的Rust方式来避免此问题.有没有办法让rust编译器在我忘记时让我知道? 我的想法是也许以某种方式有这样的东西: //must_use将防止我们忘记它,如果它
..
更新 基于以下输入.一次又一次,我感到类型安全使用Java接口的努力不那么简单. 这是我们想要做的一个简单示例:设计,紧随其后.经过多次尝试以获得类型安全性的实现时,我(再次 )发现我们需要使用Java进行思考,以鼓励Java支持我们的需求.我对原始示例进行了改进.我将问题悬而未决,因为可能有更好的方法来解决问题. 意图: 考虑一些我们想放入哈希表的不同类. 我们希望将这些作为
..
让我们想象一下类型T: type T = { prop1: (s: S) => T1, prop2: (s: S) => T2, prop3: (s: S) => T3, } 现在让我们想象一下类型W type W = (s: S) => { prop1: T1, prop2: T2, prop3: T3, } 易于编写将T映射到W的函数,
..
这是我先前提出的问题的长篇 对于tl版本,请参见此处:链接 对于这句话,我感到抱歉,但请多多包涵.我为这个问题付出了很多努力,并且我相信这里的问题应该使许多人感兴趣. 背景 我正在用经典的场景图编写UI框架.我有一个名为 Component 的抽象顶级类,还有许多子类,其中一些是具体的,而另一些也是抽象的.一个具体的子类可能是 Button ,而一个抽象的子类可能是 Col
..
我遇到了javas泛型和覆盖方法的问题.想象一下,我有一个像树一样深的类层次结构.顶级类定义了一个方法foo,该方法带有1个类型为Strategy的参数.策略具有通用类型参数. 我的类层次结构中的每个类都需要重写foo来限制可以传递的Strategy的类型,以便该Strategy的泛型类型参数与声明的类匹配.下面是一个示例: abstract static class TopLevel
..