标签: variable-assignment

为什么Java的+ =, - =,*=,/ =复合赋值运算符需要转换?

直到今天,我还以为:

i += j;
Run Code Online (Sandbox Code Playgroud)

只是一个捷径:

i = i + j;
Run Code Online (Sandbox Code Playgroud)

但是如果我们试试这个:

int i = 5;
long j = 8;
Run Code Online (Sandbox Code Playgroud)

然后i = i + j;将不会编译但i += j;将编译正常.

这是否意味着事实上i += j;是这样的捷径 i = (type of i) (i + j)

java casting operators variable-assignment assignment-operator

3547
推荐指数
11
解决办法
28万
查看次数

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

我有一个名为test.sh的脚本:

#!/bin/bash
STR = "Hello World"
echo $STR
Run Code Online (Sandbox Code Playgroud)

我跑的时候sh test.sh得到这个:

test.sh: line 2: STR: command not found
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我在网上看一下非常基础/初学者的bash脚本教程,这就是他们说声明变量的方式......所以我不确定我做错了什么.

我在Ubuntu Server 9.10上.是的,bash位于/bin/bash.

syntax bash shell sh variable-assignment

493
推荐指数
5
解决办法
32万
查看次数

为什么会进入无限循环?

我有以下代码:

public class Tests {
    public static void main(String[] args) throws Exception {
        int x = 0;
        while(x<3) {
            x = x++;
            System.out.println(x);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我们知道他应该只是写x++或者x=x+1,但是x = x++它首先要归于x自身,然后再增加它.为什么x继续0作为价值?

--update

这是字节码:

public class Tests extends java.lang.Object{
public Tests();
  Code:
   0:   aload_0
   1:   invokespecial   #1; //Method java/lang/Object."<init>":()V
   4:   return

public static void main(java.lang.String[])   throws java.lang.Exception;
  Code:
   0:   iconst_0
   1:   istore_1
   2:   iload_1
   3:   iconst_3
   4:   if_icmpge   22
   7:   iload_1 …
Run Code Online (Sandbox Code Playgroud)

java loops increment operators variable-assignment

490
推荐指数
12
解决办法
2万
查看次数

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

例如,如果我想从中读取中间值magic(5),我可以这样做:

M = magic(5);
value = M(3,3);
Run Code Online (Sandbox Code Playgroud)

得到value == 13.我希望能够做到这样的事情之一:

value = magic(5)(3,3);
value = (magic(5))(3,3);
Run Code Online (Sandbox Code Playgroud)

免除中间变量.然而,MATLAB抱怨Unbalanced or unexpected parenthesis or bracket在第一个括号之前3.

是否可以在不首先将其分配给变量的情况下从数组/矩阵中读取值?

indexing matlab matrix return-value variable-assignment

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

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

给出这段JavaScript代码......

var a;
var b = null;
var c = undefined;
var d = 4;
var e = 'five';

var f = a || b || c || d || e;

alert(f); // 4
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释一下这种技术的用途(我最好的猜测是在这个问题的标题中!)?它是如何/为什么它正常工作?

我的理解是变量f将被赋予第一个变量的最近值(从左到右),该变量的值不是null或未定义,但是我没有设法找到关于这种技术的很多参考资料并且有看到它用了很多.

此外,这种技术是否特定于JavaScript?我知道在PHP中做类似的事情会导致产生f一个真正的布尔值,而不是d它自身的值.

javascript variables variable-assignment or-operator

332
推荐指数
8
解决办法
32万
查看次数

使用MS批处理文件将程序的输出分配给变量

我需要使用MS批处理文件将程序的输出分配给变量.

所以在GNU Bash shell我会用VAR=$(application arg0 arg1).我在Windows中使用批处理文件需要类似的行为.

有点像set VAR=application arg0 arg1.

cmd batch-file variable-assignment windows-console

269
推荐指数
6
解决办法
29万
查看次数

是否可以仅在没有在Python中赋值的情况下声明变量?

是否可以在Python中声明变量,如此?:

var
Run Code Online (Sandbox Code Playgroud)

所以它初始化为None?似乎Python允许这样做,但是一旦你访问它,它就会崩溃.这可能吗?如果没有,为什么?

编辑:我想这样做的情况:

value

for index in sequence:

   if value == None and conditionMet:
       value = index
       break
Run Code Online (Sandbox Code Playgroud)

重复

有关

python variable-assignment variable-declaration

260
推荐指数
4
解决办法
45万
查看次数

在jinja中设置变量

我想知道如何在jinja中使用另一个变量设置变量.我会解释,我有一个子菜单,我想显示哪个链接是活动的.我试过这个:

{% set active_link = {{recordtype}} -%}
Run Code Online (Sandbox Code Playgroud)

其中recordtype是为我的模板指定的变量.

python variables templates variable-assignment jinja2

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

如何从返回多个值的函数中分配?

仍然试图进入R逻辑...解压缩(在LHS上)返回多个值的函数的结果的"最佳"方法是什么?

我显然不能这样做:

R> functionReturningTwoValues <- function() { return(c(1, 2)) }
R> functionReturningTwoValues()
[1] 1 2
R> a, b <- functionReturningTwoValues()
Error: unexpected ',' in "a,"
R> c(a, b) <- functionReturningTwoValues()
Error in c(a, b) <- functionReturningTwoValues() : object 'a' not found
Run Code Online (Sandbox Code Playgroud)

我真的必须做以下事吗?

R> r <- functionReturningTwoValues()
R> a <- r[1]; b <- r[2]
Run Code Online (Sandbox Code Playgroud)

或者R程序员会写更像这样的东西:

R> functionReturningTwoValues <- function() {return(list(first=1, second=2))}
R> r <- functionReturningTwoValues()
R> r$first
[1] 1
R> r$second
[1] 2
Run Code Online (Sandbox Code Playgroud)

---编辑回答谢恩的问题---

我真的不需要给结果值部分命名.我申请一个聚合函数的第一个组件和其他到第二组件(minmax,如果它是我不需要分裂他们两个组件功能相同).

r return-value variable-assignment multiple-results assign

208
推荐指数
8
解决办法
22万
查看次数

为什么x ==(x = y)与(x = y)== x不相同?

请考虑以下示例:

class Quirky {
    public static void main(String[] args) {
        int x = 1;
        int y = 3;

        System.out.println(x == (x = y)); // false
        x = 1; // reset
        System.out.println((x = y) == x); // true
     }
}
Run Code Online (Sandbox Code Playgroud)

我不确定Java语言规范中是否有一个项目要求加载变量的先前值以与右侧(x = y)进行比较,右侧()按括号隐含的顺序首先计算.

为什么第一个表达式评估false,但第二个表达式评估为true?我本来期望(x = y)先评估,然后它会x与自己(3)进行比较并返回true.


这个问题与Java表达式中子表达式的评估顺序不同,这x绝对不是这里的"子表达式".需要加载它以进行比较而不是"评估".这个问题是特定于Java的,而且这个表达式x == (x = y)不同于通常为棘手的面试问题精心设计的不切实际的结构,而是来自一个真实的项目.它应该是比较和替换成语的单行替代品

int oldX = x;
x = y;
return …
Run Code Online (Sandbox Code Playgroud)

java equality variable-assignment operator-precedence jls

206
推荐指数
10
解决办法
2万
查看次数