首页 文章
  • 2 votes
     answers
     views

    Pyomo:如何更新现有模型实例的约束定义?

    我遇到了一个问题,我确信有一个答案(可能是一行代码) . 我有以下最小模型(数学上是荒谬的,但它描述了我的问题): from pyomo.environ import * model=AbstractModel() m=model m.name="Example model" #Sets m.mySet=Set(doc="my set") m.myVa...
  • 49 votes
     answers
     views

    如何附加或前置Scala mutable.Seq

    有人了解Scala的collection.mutable.Seq . 它描述了所有可变序列的接口,但是我没有看到在不创建新序列的情况下附加或前置元素的方法 . 我错过了一些明显的东西吗? 分别有 :+ 和 +: 用于追加和前置,但是它们创建了新的集合 - 为了与不可变序列的行为一致,我假设 . 这很好,但为什么没有类似 += 和 +=: 的方法,如 ArrayBuffer 和 ListBuffer...
  • 1 votes
     answers
     views

    可变变量由非const成员函数更改

    我正在学习C,我读到了: If a data member is declared mutable, then it is legal to assign a value to this data member from a const member function. 但是下面的代码编译没有任何错误或gcc的警告 . (这不是一个真实的代码示例,我只是编写它来测试mutable关键字) cla...
  • 0 votes
     answers
     views

    过度使用mutable来增强安全性?

    假设我有一个具有指针数组的类,我有一个方法取消引用指针并将其作为引用返回 . 我想允许方法调用者调用指针指向的对象的非const方法,但也希望保护自己免受调用者更改指针所指向的内容 . 如果我返回一个const引用,我必须将许多指针对象的方法标记为const,因此它的许多类成员变量都是可变的 . 这是不好的做法吗?如果是这样,我该如何解决这个问题呢? 过度使用可变性是否存在性能损失? ...
  • 4 votes
     answers
     views

    允许const成员函数使用mutable编辑某个成员变量

    我想应用Memoization技术来提高"Line"类的性能,如下所示: class line{ public: line() = default; ~line() = default; float segment_length() const; Tpoint first; Tpoint...
  • 9 votes
     answers
     views

    为什么Fsharp Interactive允许闭包捕获可变变量?

    使用Chris Smith的Programming F#3.0中的一个例子: let invalidUseOfMutable() = let mutable x = 0 let incrementX() = x <- x + 1 incrementX() x;; 这按预期失败: 错误FS0407:可变变量'x'以无效方式使用 . 闭包不能捕获可变变量 . ...
  • 0 votes
     answers
     views

    在Java中实现数字系统:可变与不可变

    我正在实现有理数的类,但是对于复数以及打算在给定数学对象上执行大量计算的应用程序中使用的其他类,问题和问题基本相同 . 在随JRE一起分发的库中以及许多第三方库中,数字类是不可变的 . 这具有如下优点:“等于”和“哈希码”可以按预期可靠地一起实现 . 这将使实例可以用作各种集合中的键和值 . 实际上,必须保持实例在其整个生命周期中作为集合中的关键值的不变性,以便对集合进行可靠的操作 . 如果类阻止...
  • 2 votes
     answers
     views

    在&mut self方法中展开成员变量时,不能移出借来的内容

    我试图在Rust中创建一个Disjoint-Set数据结构 . 相关代码是: pub struct Set<'a, T: 'a> { rank: u32, value: T, parent: Option<&'a mut Set<'a, T>>, } impl<'a, T> Set<'a, T> { ...
  • 451 votes
     answers
     views

    为什么可变结构“邪恶”?

    在这里讨论了SO之后,我已经多次读过可变结构是“邪恶的”的评论(就像在答案中那样question) . C#中可变性和结构的实际问题是什么?
  • 477 votes
     answers
     views

    除了允许变量被const函数修改之外,'mutable'关键字是否有任何其他用途?

    前一段时间我遇到了一些代码,它们用 mutable 关键字标记了一个类的成员变量 . 据我所知,它只是允许您修改 const 方法中的变量: class Foo { private: mutable bool done_; public: void doSomething() const { ...; done_ = true; } }; 这是这个关键字的...
  • 15 votes
     answers
     views

    在迭代递归结构时无法获得可变引用:不能一次多次借用可变引用

    我试图迭代地导航递归数据结构,以便在某个位置插入元素 . 根据我的有限理解,这意味着对结构的根进行可变引用,并通过对其跟随者的引用连续替换它: type Link = Option<Box<Node>>; struct Node { next: Link } struct Recursive { root: Link } impl Recursive ...
  • 2 votes
     answers
     views

    生锈中的字节缓冲区[重复]

    这个问题在这里已有答案: Creating a vector of zeros for a specific size 4个答案 访问 &mut [u8] 的最有效方法是什么?现在我从Vec借用但是更直接地分配缓冲区会更容易 . 我现在能做的最好的事情是预先分配一个向量然后推出它的长度,但这不是惯用的 . let mut points_buf : Vec<u8> = Vec...
  • 0 votes
     answers
     views

    数据网格的Haskell可变数组

    我'm trying to write a sudoku generator/solver in Haskell as a learning exercise, but I'm在 ST monad中遇到难以产生可变数组的问题 . 我的 parse 函数的输入将是 String ,包含数字 1 到 9 和占位符( . , - 或 0 )的81个字符 . 这是我写的函数,但它不会编译,我无法弄清楚我...
  • 2 votes
     answers
     views

    Rust如何解决Hindley-Milner的可变性?

    我已经读过Rust使用Hindley-Milner进行非常好的类型推断 . Rust也有可变变量和AFAIK,当HM算法使用可变性时必须有一些约束,因为它可能过度泛化 . 以下代码: let mut a; a = 3; a = 2.5; 不编译,因为在第二行推断出整数,并且不能将浮点值赋给整数变量 . 所以我猜测对于简单变量,只要推断出非泛型类型,变量就变成单一类型,不能再进行泛化 . 但是像...
  • 22 votes
     answers
     views

    在Kotlin中,如何在迭代时修改列表的内容

    我有一个清单: val someList = listOf(1, 20, 10, 55, 30, 22, 11, 0, 99) 我想在修改一些值时迭代它 . 我知道我可以用 map 来做,但是它会复制一份列表 . val copyOfList = someList.map { if (it <= 20) it + 20 else it } 如果没有副本我该怎么办? Note: 这个问题是...
  • 5 votes
     answers
     views

    可循环借用

    我有以下代码: struct Baz { x: usize, y: usize, } struct Bar { baz: Baz, } impl Bar { fn get_baz_mut(&mut self) -> &mut Baz { &mut self.baz } } struct Foo { ...
  • 1 votes
     answers
     views

    Scala - 可变 Map

    有没有办法通过使用变量在scala中创建可变映射?我正在阅读带有source.fromFile(“abc.csv”) . getlines的csv文件 . 我希望这个文件的前2列是关键,并作为值休息 . 我想对第二个文件做同样的事情,所以我可以根据密钥比较这两个文件并获得差异 . 例如:文件abc.csv如下:Company,Empid,Name 1,10,Abc 1,11,PQR 2,10,XY...
  • 16 votes
     answers
     views

    什么时候可以在 Scala 中使用“var”?

    我知道 Scala 有var(对于可变状态)但是纯函数式编程不鼓励使用任何可变状态,而是专注于使用val来处理所有事情。 来自一个势在必行的世界,很难放弃可变的状态。 我的问题是什么时候可以在你的 Scala 代码中使用 var?所有代码都可以使用 val 完成。如果是,那么为什么 Scala 有变量呢?
  • 5 votes
     answers
     views

    当声明为var时,Scala不可变集是可变的

    我正在阅读Scala编程,第2版(精彩的书,比斯卡拉的网站更好地以非摇滚科学的方式解释事物)并且我注意到这...在回到不可变和可变的时候很奇怪集 . 它将以下内容声明为不可变集 var jetSet=Set("Boeing", "Airbus") jetSet+="Lear" println(jetSet.contains("C...
  • 453 votes
     answers
     views

    列表更改意外地反映在子列表中

    我需要在Python中创建一个列表列表,所以我输入以下内容: myList = [[1] * 4] * 3 列表看起来像这样: [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]] 然后我改变了最里面的一个值: myList[0][0] = 5 现在我的列表看起来像这样: [[5, 1, 1, 1], [5, 1, 1, 1], [5, 1, 1, 1]] ...
  • 5 votes
     answers
     views

    .NET中的值类型,不变性(好)和可变性(邪恶)[重复]

    这个问题在这里已有答案: Why are mutable structs “evil”? 16个答案 我最近一直在阅读很多关于Value Types & Reference Types的文献,以及他们的不同之处 . 这个问题围绕着 mutability 和 immutability 的值类型主题 . 基于我所读到的,似乎.NET中的值类型应该以它们不可变的方式编写;也就是说,一旦为它们...
  • 71 votes
     answers
     views

    F#:让mutable与ref

    首先,我承认这个问题可能是重复的;请告诉我 我很好奇普通"best practice"对于那些需要可变性的情况 . F#似乎为此提供了两种工具: let mutable 绑定,它似乎像"most"语言中的变量一样工作,而参考单元(使用 ref 函数创建)需要显式取消引用才能使用 . 有几种情况,其中一个是"forced"到一个或另一个:...
  • 151 votes
     answers
     views

    不可变与可变类型

    我对不可变类型是多么困惑 . 我知道 float 对象被认为是不可变的,我的书中有这种类型的例子: class RoundFloat(float): def __new__(cls, val): return float.__new__(cls, round(val, 2)) 由于类结构/层次结构,这被认为是不可变的吗?意味着 float 位于类的顶部并且是它自己的方法调...
  • 0 votes
     answers
     views

    类的特定实例可以是不可变的吗? [重复]

    这个问题在这里已有答案: Is there an easy way to make an immutable version of a class? 7个答案 How do I create an immutable Class? 5个答案 我想看看我是否可以使类的实例不可变,即使类本身不是 . 我在这里有类似的情况 IntPtr.Zero 和其他类似的静态字段,除了它是一个可变类而不...
  • 157 votes
     answers
     views

    可变对象与不可变对象

    我试图让我的头围绕可变对象和不可变对象 . 使用可变对象会导致很多不良操作(例如,从方法中返回一个字符串数组),但我无法理解其中的负面影响 . 使用可变对象的最佳做法是什么?你应该尽可能地避开它们吗?
  • 10 votes
     answers
     views

    Scala:包含可变和不可变集

    我发现了一个我可以理解的可变集的奇怪行为: 我有一个对象,我想添加到一个集合 . 该类的equals方法被覆盖 . 当我向set添加两个不同的对象时,它为equals方法产生相同的输出,我在contains方法的可变和不可变集之间得到了不同的行为 . 这是代码片段: class Test(text:String){ override def equals(obj:Any) = obj matc...
  • 0 votes
     answers
     views

    在Scala Slick中实现类实例的成员修改的最佳方法?

    我正试图在现实生活中使用Slick的嵌入式嵌入方法(体育俱乐部成员的个人数据自我管理) . 我已经设法从数据库中检索信息并更新记录(实现Member作为案例类并使用案例类复制方法,如下所示)但我很难找到实现成员修改的最佳方法 . 自然的方式 . 我已经考虑了两种可能性:1)维护类实例的不变性并实现一般的setter(参见代码)2)使构造函数参数“var”(什么会抑制不变性,因此不理想) 坚持使用选...

热门问题