标签: mutable

将值添加到集合列表中的元素

我正在使用python,我有一个集合列表,构造如下:

list = [set([])]*n
Run Code Online (Sandbox Code Playgroud)

...其中n是列表中我想要的集合数.我想为列表中的特定集添加值.说,第二集.我试过了

list[1].add(value)
Run Code Online (Sandbox Code Playgroud)

但是,这会将值添加到列表中的每个集合.这种行为对我来说非常不直观.通过进一步的测试,我认为我发现了问题:列表显然包含10个相同集合的实例,或者指向同一集合的10个指针,或者其他东西.通过反复调用构造列表

list.append(set([]))
Run Code Online (Sandbox Code Playgroud)

允许我使用上面的语法将元素添加到单个集合.所以我的问题是:我的第一个列表构建技术到底发生了什么?很明显,我不太了解语法.另外,是否有更好的方法来初始化n元素列表?我一直在使用这种语法,这是我的第一个问题.

python mutable

1
推荐指数
1
解决办法
724
查看次数

Scala中的可变方法参数

简单问题:我在Scala中继承了一个FilterInputStream,它有一个read方法:

public void read(byte [] b,int offset,int len)
Run Code Online (Sandbox Code Playgroud)

正在读取的数据将被放入b中,但由于参数在Scala方法中是"vals",我认为无法正确地对其进行子类化.如何将b设置为正在读取的数据?Java*InputStream真的让我没有多少选择....

parameters scala mutable

1
推荐指数
3
解决办法
3856
查看次数

查询F#中的泛型用法,特别是新的T()和ref单元格

这个C#的F#等价物是什么:

    public T GetNewItem()
    {
        return new T();
    }
Run Code Online (Sandbox Code Playgroud)

另外,如何将新的T()作为ref单元格返回,以便在需要out或ref参数的.Net库中使用?

generics f# mutable ref

1
推荐指数
1
解决办法
170
查看次数

如何在fsharp中使用选项类型初始化记录

你知道如何在下面初始化变量ret吗?

   type ReferenceDataResponse = 
      { ResponseError : ResponseError option
        SecurityDatas : SecurityData array option }


   let ToReferenceDataResponse(elem:Bloomberglp.Blpapi.Element) =
      let ret =  { ResponseError = null ; SecurityDatas = null }

      if elem.HasElement("ResponseError") then
         ...
      end
Run Code Online (Sandbox Code Playgroud)

ps:我想我已经以某种方式声明我的记录值是可变的

更新:

正如评论中所提到的,我之前在我的代码中使用过None:

 type ZeroOrMany<'a> = 
     | Many of 'a array 
     | None
Run Code Online (Sandbox Code Playgroud)

这为符号'None'创建了一个新的定义,它隐藏了我试图在这里引用的"Option.None".

f# initialization mutable option

1
推荐指数
1
解决办法
1352
查看次数

我如何在Python中模拟等效的pass-by-reference?

我基本上需要的是一个可变整数,它可以完成下面的等价,而不必求助于使用单个元素列表.

下面是一个人为的代码示例,它代表了我实际用例的本质[1]

>>> a = [5]  
>>> b = [77]  
>>> def swap(num1, num2):  
...     temp = num1[0]  
...     num1[0] = num2[0]  
...     num2[0] = temp  
>>> swap(a, b)  
>>> a  
[77]  
>>> b  
[5]  
Run Code Online (Sandbox Code Playgroud)

[1]我的实际用例更接近于这一点 - > 在Tkinter中使用按钮调用函数后返回一个值
我需要从与Tkinter小部件关联的回调函数返回一个值,我想避免使用全局变量.

python integer mutable pass-by-reference

1
推荐指数
1
解决办法
574
查看次数

mutableCopy是对象的状态还是行为?

我个人坚持'使用带有状态的Objective-C中的点符号和带有行为的消息'原则.我不想谈论这个,但更多的是方法,mutableCopy,状态还是行为?

也许我应该对国家和行为之间的差异做更多的研究,但据我所知,在这种情况下我不确定.

syntax objective-c mutable

1
推荐指数
1
解决办法
130
查看次数

如何强制HashMap使用身份(哈希码)?或建议解决方法

之前我已经编写了HashMap来存储一些对象,这些对象期望在存储它们时使用身份.即如果Object.equals()这样说,对象被视为"相同" .

后来我用内容评估范例对这些对象的类进行编码hashCode()和编写equals()方法.我的上一次立即HashMap停止工作,因为对象正在变异并变得不平等.

如何插入一些简单的解决方法,使早期的代码工作?可能有一种方法强制HashMap使用身份,尽管有定义equals()hashCode()方法的事实?

java equality hashmap mutable

1
推荐指数
1
解决办法
573
查看次数

Haskell中的可变变量和case语句

所以我不确定我想要的是否实际上是一个可变变量,但它与它相似.

我基本上想要这样做:

case thing of
    True -> p <- func
    False -> p <- otherFunc
return Record {program=p, otherFields=oF}
Run Code Online (Sandbox Code Playgroud)

我有什么方法可以做那样的事情?我已经让我的函数返回一个IO记录,所以尝试将返回放在case语句中,但是我的最后一行需要返回它,但事实并非如此.

haskell mutable case-statement switch-statement

1
推荐指数
1
解决办法
181
查看次数

F#中的尾递归:使用Quicksort进行反演

嗨我在理解尾递归方面有些困难.我知道避免无限循环以及内存使用非常重要.我在"F#中的专家"中看到了一些关于像Fibonacci这样的简单函数的例子,但是当我的结果不仅仅是一个数字时,我认为我没有看过代码.

那么累加器会是什么?我不确定...

这是我写的一个递归函数.它使用快速排序算法计算数组中的反转次数.[它取自斯坦福大学的Coursera MOOC Algo I的练习]

如果有人能解释如何使尾部递归,我将不胜感激.[另外,我已经从命令式代码翻译了那段代码,因为我之前在R中写过,所以风格根本不起作用......]

另一个问题:语法是否正确,A是一个(可变)数组,我let A = ....到处都写过?为A <- ....更好地/一样的吗?

open System.IO
open System


let X = [|57; 97; 17; 31; 54; 98; 87; 27; 89; 81; 18; 70; 3; 34; 63; 100; 46; 30; 99;
    10; 33; 65; 96; 38; 48; 80; 95; 6; 16; 19; 56; 61; 1; 47; 12; 73; 49; 41;
    37; 40; 59; 67; 93; 26; 75; 44; 58; 66; 8; 55; 94; 74; 83; 7; 15; 86; …
Run Code Online (Sandbox Code Playgroud)

recursion f# tail-recursion mutable quicksort

1
推荐指数
1
解决办法
198
查看次数

使用mutable允许修改unordered_set中的对象

请考虑以下代码:

#include <iostream>
#include <unordered_set>

struct MyStruct
{
    int x, y;
    double mutable z;

    MyStruct(int x, int y)
        : x{ x }, y{ y }, z{ 0.0 }
    {
    }
};

struct MyStructHash
{
    inline size_t operator()(MyStruct const &s) const
    {
        size_t ret = s.x;
        ret *= 2654435761U;
        return ret ^ s.y;
    }
};

struct MyStructEqual
{
    inline bool operator()(MyStruct const &s1, MyStruct const &s2) const
    {
        return s1.x == s2.x && s1.y == s2.y;
    }
};

int …
Run Code Online (Sandbox Code Playgroud)

c++ mutable unordered-set

1
推荐指数
1
解决办法
210
查看次数