问题标签 [invariants]
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.
scala - Scala 匿名函数泛型方差问题
我正在学习 Scala 的路上,我很难理解逆变、协变、不变性等。从为什么这个例子不能编译,也就是如何(co-, contra-, and in-)方差工作?我已经了解了如何将函数视为另一个函数的子类型。(知道真的很有用!)
下面的代码是我认为解决我的难题的重要部分。我已经提取了我认为会给问题增加不必要的复杂性的部分。根据示例,我有一个 Student 对象,它将充当工厂来生成函数。
函数将采用 AnyVal 的类型或子类型(Int、Double、Long 等),并且返回输出将具有相同的输入类型。为了实现这一点,学生类接受一个泛型 (A),它是 AnyVal 的子类型。抽象类在那里,因此我可以通过执行类似 List[Master[AnyVal]](Student.func1) 之类的操作来引用这些学生的列表。
问题是我不能有“val function: List[A] => A”这一行,因为我得到错误“协变类型 A 出现在类型 => List[A] => A 的值函数的逆变位置”。我不知道为什么返回类型必须是 A 的逆变器。对于基于 Function1 特征的名称,我在某种程度上可以接受这个事实。
那么我将如何在抽象 Master 类中定义我的函数,以便返回类型是 A 类型的逆变器?我找到了一个如何使用函数定义来定义它的示例(例如 def function[B >: A](v: B): List[B]),但是我将如何使用匿名函数来实现它呢?请记住,主抽象类中的“A”必须是协变的,因为会有一个函数列表接受所有 AnyVal 类型(Int、Double 等)
真的很感谢帮助!让我知道我的任何术语是否关闭。- 斯卡拉学习者
domain-driven-design - 领域驱动设计 - 实体的子实体相对于父实体的顺序
比如说,我有两个聚合父和子。一个 Parent 可以有多个 Childs (Children)。一个孩子只能属于一个父母。
我需要跟踪子实体的排序顺序,以便当您获取父实体的子实体时,列表按该顺序排列。
显而易见的数据库模式如下:
然而,模型的一个不变量需要是这个顺序是明确定义的。因此,如果您在 Child 上有一个方法,Child.SetOrdinal(int) 说,那么这个不变量不受保护(没有什么能阻止您将两个 Childs 设置为序数 3)。我不想将它们全部整合到一个大集合中。
我看到的替代方案是如下数据库:
我已经引入了一个链接表来存储关系和顺序,这将在 Parent 聚合内,其中可以保护不变量。然而,这确实增加了数据库的复杂性。
还有另一种方法,还是第一个更简单的版本还不错?
loops - 具有递减迭代的循环不变量
所以,这是一个从 (temp) 到 when (temp=index) 的循环,我不确定循环不变量是什么,因为我以前从未使用过递减迭代。
我在想类似的东西: (∃i : temp...index) • (data[i] := data[i-1]) 但这是不正确的,因为基本情况不起作用。
arrays - Scala BigInt 数组
我正在尝试解决这个问题http://projecteuler.net/problem=62并且我被这个错误挂断了:
问题可能是因为 BigInt 试图存储在一个数组中,但显然没有 Array[BigInt] 的数组这样的东西
下面是我的代码:
java - 需要解释 UML 建模工具提出的软件设计问题清单
我试图通过使用 ArgoUML 在 UML 中建模来消化大型 Java 应用程序。在 UML 图表工具的属性部分有一个有用的清单,我假设它用于帮助设计好的软件。除了 3 之外,大多数清单项目都是有意义的。
这些问题是什么意思?我是面向对象设计的新手,所以解释会很有帮助。
先感谢您。
logic - 是不变量,重言式吗?
所以我在阅读 Assertions Java API 时遇到了术语不变量。在我阅读了网上的其他文章后,我理解不变量是重言式。我误会了吗?
c# - 如何强制不变方法在 C# 代码合同中引发特定异常?
我希望我的对象不变方法抛出一个特定的异常。是否有意义?在 C# 中可能吗?
例如,我有以下代码,包括具有不变方法的类 A 和异常类 E。目前 E 类不参与 A ...
我需要的是以下内容。像 Contract.Requires 一样,拥有 Contract.Invariant (或者可能是一个属性构造函数,它接受异常派生类)会很有用。
是好意吗?可能是我的逻辑错了?
python - 不变量 Python
我正在阅读python 教程。第三段让我有点困惑。
“客户应该谨慎使用数据属性——客户可能会通过在他们的数据属性上加盖戳来弄乱由方法维护的不变量。”
他们所说的不变量究竟是什么意思?它们是指某些方法所依赖的数据属性吗?(例如,返回某个数据成员的方法;即 getter 方法)
immutability - 埃菲尔的不可变类
我正在尝试POINT
在 Eiffel 中创建一个不可变的类。下面的代码是否定义了一个?和字段的{NONE}
可访问性就足够了吗?我可以为类不变量写一些东西吗,或者我怎样才能实现不变性?x
y
x = x'
python - 是回文吗?使用不变编程
以下代码不起作用。
TypeError:“str”对象不可调用
你能告诉我,它有什么问题吗?我找不到错误。