问题标签 [variable-assignment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
832 浏览

c - 如何从char函数返回字符串

我希望函数 getCategory() 返回 "invalid" ,而不是在函数输入无效时打印单词 "invalid" (即,而不是使用 printf )(即当身高或体重低于零时)。请帮忙:

0 投票
15 回答
3839 浏览

c++ - 为什么`i = ++i + 1`未指定行为?

考虑以下 C++ 标准 ISO/IEC 14882:2003(E) 引文(第 5 节,第 4 段):

除非另有说明,否则未指定单个运算符的操作数和单个表达式的子表达式的求值顺序,以及副作用发生的顺序。53) 在前一个和下一个序列点之间,一个标量对象的存储值最多只能通过表达式的评估修改一次。此外,只能访问先验值以确定要存储的值。对于完整表达式的子表达式的每个允许排序,都应满足本段的要求;否则行为未定义。[例子:

——结束示例]

我很惊讶它i = ++i + 1给出了一个未定义的值i。有谁知道编译器实现2在以下情况下没有给出?

问题是它operator=有两个参数。第一个总是i参考。在这种情况下,评估顺序无关紧要。除了 C++ 标准禁忌之外,我没有看到任何问题。

不要考虑参数顺序对评估很重要的情况。例如,++i + i显然是未定义的。请只考虑我的情况 i = ++i + 1

为什么 C++ 标准禁止这样的表达?

0 投票
5 回答
657 浏览

c - C * 运算符在数组赋值中的含义

这条线是什么意思?几年没学过C了。它是否在括号中执行操作然后使 int 结果成为指针?

0 投票
5 回答
407 浏览

lisp - 将表达式的结果分配给变量

使用 DrScheme(语言——相当大)。试图将表达式的结果传递给稍后可以在另一个表达式中使用的变量。这是问题的简化版本:

定义窗口:

解释器窗口

我想要的结果当然是 19。让 DrScheme 一次完成所有代数很容易,但我需要让它求解第一个表达式,然后根据第一个表达式的结果求解第二个表达式。

0 投票
4 回答
28984 浏览

javascript - 在 Javascript 中使用赋值运算符将一个对象设置为等于另一个对象

我从 C 背景开始使用 javascript。在javascript中,当我使用赋值运算符将一个对象分配给另一个对象时,它是将值从一个对象复制到另一个对象,还是它们现在都指向相同的数据?或者在这种情况下赋值运算符有什么作用吗?

在上面的例子中,pnt2.x 现在是等于 8,还是还是等于 4,还是还是等于 0?

是的,我意识到我可以自己测试这个,我会在等待社区提出答案的同时这样做。但是,我希望我的问题的答案将比回答这个示例更进一步,并且可能会对 javascript 对象的工作原理和一些最佳实践有所启发。

跟进问题:
答案似乎是引用被复制。pnt2 和 pnt1 现在指向相同的数据。是否可以设置我的对象以便复制值?这通常如何在javascript中完成?显然,我不想在每次需要复制此对象时单独设置每个属性。

0 投票
5 回答
158147 浏览

linux - Linux bash:多变量赋值

linux bash 中确实存在类似于 PHP 中以下代码的内容:

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

假设我有将myBashFuntion字符串“qwert asdfg zxcvb”写入标准输出的 bash 函数。是否可以执行以下操作:

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

但是,有效的是以下内容:

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

但这些是我宁愿避免的另外 3 个陈述。

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

0 投票
2 回答
195 浏览

python - Python 使用基于索引的列表

我在 CSV 文件中有数据。其中一列列出了人名,该列中的所有行都提供了有关该人的一些描述性属性,直到出现下一个人名。我可以通过 LTYPE 列判断该行何时具有名称或属性,该列中的 N 表示该行中的 NAME 值实际上是一个名称,该列中的 A 表示 NAME 列中的数据是一个属性. 属性已编码,我有 600K 行数据。这是一个示例。数据被分组,每个分组的开始由 RID 重置为 1 指示。

我想创建以下内容:

我从获取 LTYPE 的索引位置开始

因此,我将每一行的列表索引归类为一个列表中的名称,并将每一行的列表索引归类为另一个列表中的属性。然后很容易将名称附加到每个观察值,如下所示

我正在努力确定并将属性列表分配给每个人。

首先,我需要组合属于一起的属性,所以我这样做了:

我的方法的一个问题是我仍然必须将最后一组添加到 newAttribute 列表中,因为循环在添加之前完成。所以要获得分组属性列表,我必须运行

但即便如此,我似乎也找不到一种干净的方法来添加我必须分两步完成的属性。首先,我创建一个字典,其中 nameIndex 位置作为键,属性作为值

一旦将属性放在名称行上,我就会循环浏览列表

然后我再次检查它是否存在键'TA'并使用存在来设置PERSON_ATTRIBUTE键

必须有一种更简洁的方式来考虑这个问题,所以我想知道是否有人愿意指出我可以阅读的一些函数的方向,这些函数可以让我清理这段代码。我知道我仍然必须放弃“TA”键,但我认为我已经占用了足够的空间。

0 投票
5 回答
326 浏览

c# - 参考问题:两个对象何时相等?

我有一个 Vector 类,我正在测试以下单元测试(使用 nUnit)。

第 3 行的第一个测试通过,但第 5 行的第二个测试失败。既然我在第 2 行做了赋值语句,那么 test2 不应该也指向与 test1 相同的内存吗?我的 Vector 被定义为一个类,所以它是一个引用类型。另一方面,以下测试通过:

这是否意味着,当我使用 new 运算符定义新对象时,旧分配不再有效?任何其他(或正确的 - 如果我错了)解释?

0 投票
5 回答
502 浏览

c - 这是错的还是我错过了什么(int count = 10, x;)

在我正在阅读的书中遇到了这个例子,它对我来说根本没有意义,我可能遗漏了一些东西,但似乎你用值'10'分配了计数,然后是值'x',这甚至不是一个整数。只是想知道这是否是有效的语法。

这本书是这样说的:

变量 count 和 x 以正常方式声明为整数变量。在下一行,变量 intPtr 被声明为“指向 int 的指针”类型。请注意,这两行声明可以合并为一行:

这是它取自的程序:

0 投票
7 回答
3420 浏览

c - 数组类型 - 分配/用作函数参数的规则

当我需要将数组传递给函数时,似乎该函数的所有以下声明都将起作用

为了这:

但是当我将一个数组分配给另一个数组时,它失败了

那么为什么作为函数的参数传递的数组是可以的,但在简单赋值的 rhs 上使用是错误的呢?