标签: variable-assignment

Java:定义术语初始化,声明和赋值

我发现defs是圆形的,主语是由他们的动词定义的,但动词是未定义的!那么你如何定义它们呢?

通函定义

初始化:初始化变量.它可以在声明时完成.

赋值:为变量赋值.它可以在任何地方完成,只有最终标识符一次.

声明:向变量声明值.

[更新,尝试用lambda calc理解主题]

D(x type) = (?x.x is declared with type) 
A(y D(x type)) = (?y.y is assigned to D(x type))

%Then after some beta reductions we get initialization.
D(x type) me human                  // "me" declared with type "human"
A(y (D(x type) me human)) asking    // "asking" assigned to the last declaration

%if the last two statemets are valid, an initialization exists. Right?
Run Code Online (Sandbox Code Playgroud)

java initialization declaration variable-assignment

36
推荐指数
4
解决办法
8万
查看次数

36
推荐指数
4
解决办法
3万
查看次数

Swift中的多个变量赋值

如何使用Swift在一行中分配多个变量?

    var blah = 0
    var blah2 = 2

    blah = blah2 = 3  // Doesn't work???
Run Code Online (Sandbox Code Playgroud)

variables variable-assignment swift

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

使用参数数组更改JavaScript函数的参数值无效

我正在学习JavaScript,我对arguments属性数组感到很困惑.

我有一个函数,它接受一个参数并返回它.当我传递参数并使用arguments[0] = value它重新分配时,它正在更新值.

function a(b) {
  arguments[0] = 2;
  return b;
}
console.log(a(1)); //returns 2
Run Code Online (Sandbox Code Playgroud)

但是当我调用没有参数的相同函数时它返回undefined.

function a(b) {
  arguments[0] = 2;
  return b;
}
console.log(a()); //returns undefined
Run Code Online (Sandbox Code Playgroud)

但即使我通过undefined,价值也会更新.

function a(b) {
  arguments[0] = 2;
  return b;
}
console.log(a(undefined)); //returns 2
Run Code Online (Sandbox Code Playgroud)

我认为如果你没有将参数传递给JavaScript函数,它会自动创建它并分配值,undefined并在更新后它应该反映更新的值,对吧?

a()a(undefined)是相同的东西,对不对?

javascript arrays arguments function variable-assignment

36
推荐指数
2
解决办法
2537
查看次数

变量赋值和读取原子操作?

我在文件中找不到任何参考资料......

从线程的角度分配一个double(或任何其他简单类型,包括boolean)的原子操作?

double value = 0;

public void First() {
 while(true) {
  value = (new Random()).NextDouble();
 }
}

public void Second() {
 while(true) {
  Console.WriteLine(value);
 }
}
Run Code Online (Sandbox Code Playgroud)

在此代码示例中,第一个方法在一个线程中调用,第二个方法在另一个线程中调用.如果第二种方法在另一个线程中赋值变量时获得执行,那么第二种方法是否可以获得混乱值?

我不在乎是否收到旧值,接收有效值(不是设置8个字节中的2个)的唯一重要.我知道这是一个愚蠢的问题,但我想确定,因为我不知道CLR如何实际设置变量.

.net c# multithreading variable-assignment

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

在JavaScript中,链接分配好吗?

对JS或它的语法来说并不陌生,但有时候,语言的语义有时会让我感到难过.在今天的工作中,一位同事提到了这一点:

var a = b = [];
Run Code Online (Sandbox Code Playgroud)

是不一样的

var a = [], b = [];
Run Code Online (Sandbox Code Playgroud)

要么

var a = []; var b = [];
Run Code Online (Sandbox Code Playgroud)

因为第一个版本实际上将对空数组的引用分配给a和b.我不能完全接受这一点,但我不确定.你们都觉得怎么样?

javascript object variable-assignment

34
推荐指数
2
解决办法
9370
查看次数

bash中的间接变量赋值

似乎在bash中建议的间接变量设置方法是使用eval:

var=x; val=foo
eval $var=$val
echo $x  # --> foo
Run Code Online (Sandbox Code Playgroud)

问题是通常的问题eval:

var=x; val=1$'\n'pwd
eval $var=$val  # bad output here
Run Code Online (Sandbox Code Playgroud)

(并且因为在很多地方推荐,我想知道有多少脚本因此而易受攻击...)

在任何情况下,使用(转义)引号的明显解决方案并不真正起作用:

var=x; val=1\"$'\n'pwd\"
eval $var=\"$val\"  # fail with the above
Run Code Online (Sandbox Code Playgroud)

问题是bash有(with ${!foo})烘焙的间接变量引用,但是我没有看到任何这种方式来做间接赋值 - 有没有理智的方法来做到这一点?

为了记录,我找到了解决方案,但这不是我认为"理智"的东西......:

eval "$var='"${val//\'/\'\"\'\"\'}"'"
Run Code Online (Sandbox Code Playgroud)

bash quotes eval variable-assignment

34
推荐指数
5
解决办法
3万
查看次数

并发代码中赋值运算符的返回值

鉴于以下课程:

class?Foo?{
  public?volatile?int?number;

  public?int?method1()?{
    int?ret?=?number?=?1;
    return?ret;
  }

  public?int?method2()?{
    int?ret?=?number?=?2;
    return?ret;
  }
}
Run Code Online (Sandbox Code Playgroud)

并且在同一个实例上调用多个线程method1()method2()同时执行Foo,对method1()的调用是否可以返回除1以外的任何内容?

java concurrency variable-assignment jls

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

Ruby变量赋值中的双管符号?

可能重复:
Ruby中的|| =是什么意思?

请原谅我,如果这是一个新问题,但我正在读一本关于作者在辅助方法中使用此表达式的轨道上的书:

@current_user ||= User.find_by_id(session[:user_id])
Run Code Online (Sandbox Code Playgroud)

这种双管道的使用仍然是一个布尔OR语句吗?

如果是这样,它是如何工作的?

ruby boolean variable-assignment

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

拆分声明和转让=良好做法?

作为NetBeans的狂热用户,我在引入新变量时不断获得拆分变量声明和赋值的建议.作为一个超级快速的例子,让我们采用这个Java系列:

String someInput = JOptionPane.showInputDialog(null, "- Enter something: "); 
Run Code Online (Sandbox Code Playgroud)

与:

String someInput;
someInput = JOptionPane.showInputDialog(null, "- Enter something: "); 
Run Code Online (Sandbox Code Playgroud)

NetBeans似乎更喜欢后者(但我不知道其他IDE).虽然它显然有两种方式,但如果有的话,这将被视为"良好做法"?或者纯粹是个人喜好?

(显然,拆分这两个意味着你可以只合并为一个额外的一条线,但那就是重点.)

java variables declaration variable-assignment

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