标签: variable-assignment

浅拷贝,深度拷贝和正常分配操作之间究竟有什么区别?

import copy

a = "deepak"
b = 1, 2, 3, 4
c = [1, 2, 3, 4]
d = {1: 10, 2: 20, 3: 30}

a1 = copy.copy(a)
b1 = copy.copy(b)
c1 = copy.copy(c)
d1 = copy.copy(d)


print("immutable - id(a)==id(a1)", id(a) == id(a1))
print("immutable - id(b)==id(b1)", id(b) == id(b1))
print("mutable - id(c)==id(c1)", id(c) == id(c1))
print("mutable - id(d)==id(d1)", id(d) == id(d1))
Run Code Online (Sandbox Code Playgroud)

我得到以下结果 -

immutable - id(a)==id(a1) True
immutable - id(b)==id(b1) True
mutable - id(c)==id(c1) False
mutable - id(d)==id(d1) False
Run Code Online (Sandbox Code Playgroud)

如果我进行深度扫描 …

python copy immutability deep-copy variable-assignment

192
推荐指数
6
解决办法
9万
查看次数

使用JavaScript进行多次左手分配

var var1 = 1,
    var2 = 1,
    var3 = 1;
Run Code Online (Sandbox Code Playgroud)

这相当于:

var var1 = var2 = var3 = 1;
Run Code Online (Sandbox Code Playgroud)

我很确定这是变量定义的顺序:var3,var2,var1,它等价于:

var var3 = 1, var2 = var3, var1 = var2;
Run Code Online (Sandbox Code Playgroud)

有没有办法在JavaScript中确认这一点?可能使用一些分析器?

javascript variables variable-assignment

181
推荐指数
4
解决办法
10万
查看次数

关键字Set在VBA中实际做了什么?

希望这是一个简单的问题,但我非常喜欢这个技术答案!

有什么区别:

i = 4
Run Code Online (Sandbox Code Playgroud)

Set i = 4
Run Code Online (Sandbox Code Playgroud)

在VBA?我知道后者会抛出错误,但我不完全理解为什么.

vba variable-assignment

149
推荐指数
4
解决办法
20万
查看次数

137
推荐指数
7
解决办法
9万
查看次数

移动物体怎么办?

标准是否准确定义了对象移动后我可以对其做什么?我曾经认为你用移动物体做的所有事情都可以破坏它,但这还不够.

例如,采用swap标准库中定义的函数模板:

template <typename T>
void swap(T& a, T& b)
{
    T c = std::move(a); // line 1
    a = std::move(b);   // line 2: assignment to moved-from object!
    b = std::move(c);   // line 3: assignment to moved-from object!
}
Run Code Online (Sandbox Code Playgroud)

显然,必须可以分配给移动的对象,否则第2行和第3行将失败.那么移动对象我还能做些什么呢?我在哪里可以找到标准中的这些细节?

(顺便说一句,为什么它T c = std::move(a);不是T c(std::move(a));第1行呢?)

c++ swap variable-assignment move-semantics c++11

136
推荐指数
2
解决办法
1万
查看次数

R中的全局变量

我正在深入研究手册,我想问社区:我们如何在函数内设置全局变量?

r global-variables variable-assignment

135
推荐指数
3
解决办法
13万
查看次数

运算符优先级与Javascript三元运算符

我似乎无法将这个代码的第一部分(+ =)与三元运算符结合起来.

h.className += h.className ? ' error' : 'error'
Run Code Online (Sandbox Code Playgroud)

我认为这段代码的工作方式如下:

h.className = h.className + h.className ? ' error' : 'error'
Run Code Online (Sandbox Code Playgroud)

但这不正确,因为这会在我的控制台中出错.

所以我的问题是我应该如何正确地插入这段代码?

javascript variable-assignment conditional-operator operator-precedence compound-assignment

116
推荐指数
3
解决办法
10万
查看次数

使用以下内容分配多个列:= data.table,group

使用分配给多个列的最佳方法是什么data.table?例如:

f <- function(x) {c("hi", "hello")}
x <- data.table(id = 1:10)
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情(当然这种语法不正确):

x[ , (col1, col2) := f(), by = "id"]
Run Code Online (Sandbox Code Playgroud)

为了扩展它,我可能有很多列的名称存储在一个变量(比如说col_names)中,我想这样做:

x[ , col_names := another_f(), by = "id", with = FALSE]
Run Code Online (Sandbox Code Playgroud)

做这样的事的正确方法是什么?

r variable-assignment dataframe data.table colon-equals

115
推荐指数
2
解决办法
7万
查看次数

为什么不分配空列表(例如[] ="")错误?

在python 3.4中,我正在打字

[] = "" 
Run Code Online (Sandbox Code Playgroud)

它工作正常,没有异常.虽然当然[]不等于""事后.

[] = ()
Run Code Online (Sandbox Code Playgroud)

也行得很好.

"" = []
Run Code Online (Sandbox Code Playgroud)

尽管如此提出例外,

() = ""
Run Code Online (Sandbox Code Playgroud)

尽管如此提出例外.发生什么了?

python syntax variable-assignment

110
推荐指数
2
解决办法
4043
查看次数

Linux bash:多变量赋值

在linux中存在类似于PHP中的以下代码:

list($var1, $var2, $var3) = function_that_returns_a_three_element_array() ;
Run Code Online (Sandbox Code Playgroud)

即,您在一个句子中为3个不同的变量分配相应的值.

假设我有bash函数myBashFuntion写入stdout字符串"qwert asdfg zxcvb".有可能做这样的事情:

(var1 var2 var3) = ( `myBashFuntion param1 param2` )
Run Code Online (Sandbox Code Playgroud)

等号左边的部分当然不是有效的语法.我只是想解释一下我的要求.

但是,工作原理如下:

array = ( `myBashFuntion param1 param2` )
echo ${array[0]} ${array[1]} ${array[2]}
Run Code Online (Sandbox Code Playgroud)

但索引数组不像普通变量名那样具有描述性.
但是,我可以这样做:

var1 = ${array[0]} ; var2 = ${array[1]} ; var3 = ${array[2]}
Run Code Online (Sandbox Code Playgroud)

但这些是我更愿意避免的3个陈述.

我只是在寻找一种快捷语法.可能吗?

linux bash shell variable-assignment multiple-variable-return

106
推荐指数
4
解决办法
11万
查看次数