7得票1回答
Scala 可变的 List。

几天前,我发现了Paul Philip的代码片段https://gist.github.com/paulp/9085746,展示了一种非常奇怪的行为。我没有找到任何解释这种行为的方法。 简化的代码片段: val buf = new ListBuffer[Int]() buf ++= Seq...

9得票1回答
无法借用为不可变-String和len()

let mut result = String::with_capacity(1000); result.push_str("things... "); result.push_str("stuff... "); result.truncate((result.len() - 4)); ...

8得票3回答
返回Array和IList<>有什么区别?(关于Eric Lippert的有害数组)

我刚刚阅读了Eric Lippert的"Arrays considered somewhat harmful"文章。他告诉读者们,他们“可能不应该返回数组作为公共方法或属性的值”,并给出了以下理由(略有改动): 现在,调用者可以取出该数组并将其内容替换为任何他们想要的内容。合理的做法是返回 ...

7得票1回答
将数据解析为模块级可变静态变量

我有一个模块中的一组函数需要访问一些共享的初始化状态。实际上,我想使用类似静态可变向量的方式来对其进行建模,例如: static mut defs: Vec&lt;String&gt; = vec![]; fn initialize() { defs.push("One".to_s...

7得票1回答
C#可变性 - VS Code分析给我CA2104提示?看起来...不太好。我是否理解有误?

在C#中,我想要创建“智能”枚举,就像Java中可能的那样,其中一个枚举值附加了比基础int类型更多的信息。我偶然发现了一种制作类(而不是枚举)的方法,例如以下简单示例: public sealed class C { public static readonly C C1 = ne...

135得票22回答
Python字符串不是不可变的吗?那么为什么a + " " + b能够工作?

我的理解是 Python 字符串是不可变的。 我尝试了以下代码:a = "Dog" b = "eats" c = "treats" print a, b, c # Dog eats treats print a + " " + b + " " + c # Dog eats treats ...

47得票5回答
Google Go语言中哪些类型是可变的,哪些类型是不可变的?

在Google Go中,我读到字符串是不可变的,那么 int 呢?其他类型呢?作为一名稍微有些年纪的程序员,我更喜欢可变性,尽管我知道不可变性的好处,但我更喜欢冒险。 了解哪些类型是可变或不可变将非常有帮助。 更新,我主要担心的是根据类型的可变性而导致的实际问题。就像在 Java 中的...

12得票8回答
如何在JavaScript中保持对象数组的不可变性?

我希望基于全局声明的两个数组 - "ideaList"和"endorsements"创建一个数组。由于在程序其他部分中使用了ideaList和endorsements,我需要它们保持不可变性。我认为使用.map和.filter可以实现这种不可变性。function prepareIdeaArr...

7得票5回答
可变类型的不可变视图

我有一个项目,需要在执行进程之前构建大量的配置数据。在配置阶段,将数据作为可变数据非常方便。但是,一旦配置完成,我希望将数据的不可变视图传递给功能过程,因为该过程将依赖于配置的不可变性进行许多计算(例如,基于初始配置预先计算事物的能力)。我已经提出了使用接口来公开只读视图的可能解决方案,但我想...

9得票4回答
命令模式与访问者模式

让访问者修改接收器的状态是否通常可接受,还是应该使用命令模式?