variable-assignment相关内容

在 JavaScript 中,链式赋值好吗?

我对 JS 或其语法并不陌生,但有时,该语言的语义有时让我感到困惑.今天上班,同事提到了这个: var a = b = []; 与 不一样 var a = [], b = []; 或 var a = [];var b = []; 因为第一个版本实际上将空数组的引用分配给 a 和 b.我不能完全接受这是真的,但我不确定.大家怎么看? 解决方案 是的,它们不一样.var a = ..
发布时间:2021-12-11 19:29:46 前端开发

将类变量作为默认值分配给类方法参数

我想在一个类中构建一个方法,并使用从这个类中获取的默认值参数.一般来说,我会过滤一些数据.在我的课程中,我有一个方法,通常我传递数据向量.有时我没有向量,而是使用模拟数据.每次我不传递特定向量时,我都希望默认采用模拟数据.我认为这应该是一个简单的构造,在我的方法定义中我说 a=self.vector.但由于某种原因,我有一个错误 NameError: name 'self' is not defi ..
发布时间:2021-12-09 21:31:15 Python

如何在不先将函数返回的 MATLAB 数组分配给局部变量的情况下对其进行索引?

例如,如果我想从 magic(5) 中读取中间值,我可以这样做: M = magic(5);值 = M(3,3); 得到value == 13.我希望能够执行以下操作之一: value = magic(5)(3,3);值 = (魔法(5))(3,3); 省去中间变量.但是,MATLAB 会在 3 之前的第一个括号上抱怨 Unbalanced or unexpected parenthesi ..
发布时间:2021-12-08 14:20:17 其他开发

在 Bash 变量赋值中找不到命令错误

我有一个名为 test.sh 的脚本: #!/bin/bashSTR = "你好世界"回声$STR 当我运行 sh test.sh 我得到这个: test.sh: line 2: STR: command not found 我做错了什么?我在网上查看非常基本/初学者的 bash 脚本教程,这就是他们所说的声明变量的方式......所以我不确定我做错了什么. 我使用的是 Ubuntu ..
发布时间:2021-12-05 22:07:15 其他开发

为什么在 Ruby 中`a = a` `nil`?

我观看了这个视频.如果 a 未定义,为什么 a = a 的计算结果为 nil? a = a # =>零b = c = q = c # =>零 解决方案 Ruby 解释器在看到赋值时用 nil 初始化一个局部变量.它在执行赋值表达式之前或什至在赋值不可访问时初始化局部变量(如下例所示).这意味着您的代码使用 nil 初始化 a,然后表达式 a = nil 将评估为右侧的值. a = 1 如果 ..
发布时间:2021-12-03 09:51:47 其他开发

我可以用移动的对象做什么?

标准是否准确定义了对象移出后我可以对它做什么?我曾经认为你可以对一个移动的对象做的就是破坏它,但这还不够. 以标准库中定义的函数模板swap为例: template 无效交换(T& a,T& b){T c = std::move(a);//第 1 行a = std::move(b);//第 2 行:赋值给移动的对象!b = std::move(c);//第 3 行:赋值给移动对象!} 显 ..
发布时间:2021-12-01 15:31:55 C/C++开发

JavaScript OR (||) 变量赋值说明

给定这段 JavaScript 代码...... var a;var b = null;var c = 未定义;无功d = 4;var e = '五';var f = a ||乙||c||d ||乙;警报(f);//4 有人可以向我解释一下这种技术叫什么吗(我最好的猜测是在这个问题的标题中!)?以及它如何/为什么完全起作用? 我的理解是变量 f 将被分配到第一个变量的最近值(从左到右), ..
发布时间:2021-11-30 22:36:44 前端开发

C/C++ 中的链式赋值是未定义行为吗?

忽略变量的类型,像 a=b=c 这样的表达式在 C 和 C++ 中都定义了行为吗? 如果是这样,请谁能给我官方证据,比如引用标准? 附言我搜索了链式分配,但我得到的一切都是关联性,但我在 C99 标准中没有找到任何关于它的文本.也许我做错了?希望任何人都可以帮助我. 解决方案 来自 C++ 标准 5.17 赋值和复合赋值运算符 [expr.ass] 1 赋值运算符 (=) ..
发布时间:2021-11-30 12:34:25 C/C++开发

let 5 = 10 有什么作用?不是赋值操作吗?

如果我说let 5 = 10,为什么5 + 1返回6而不是11? 解决方案 当你说 让 5 = 10 这不是对5的重新定义,而是模式匹配,和你说的时候一样 foo 5 = 未定义... foo 10 ... 如果匹配过,模式就会失败. 在 let 表达式中,匹配是惰性的.这意味着匹配仅在对其绑定的变量进行评估时进行.这允许我们编写类似 let foo = undefine ..