标签: variable-initialization

将变量初始化为虚拟值是不好的做法吗?

这个问题是我刚才提出的这个问题答案的结果.

据称这段代码"丑陋",因为它将变量初始化为永远不会被读取的值:

String tempName = null;
try{
    tempName = buildFileName();
}
catch(Exception e){
    ...
    System.exit(1);
}
FILE_NAME = tempName;
Run Code Online (Sandbox Code Playgroud)

这确实是不好的做法吗?是否应该避免将变量初始化为永远不会实际使用的虚拟值?

(编辑 - 那么将一个String变量初始化为""一个循环之前会将值连接到String ...?或者这是一个单独的类别?

例如

String whatever = "";
for(String str : someCollection){
   whatever += str;
}
Run Code Online (Sandbox Code Playgroud)

)

default-value variable-initialization

6
推荐指数
1
解决办法
1469
查看次数

MySQL中以下变量初始化样式有何不同?

我对涉及MySQL中的变量声明的查询相当新.我见过各种风格,我并不完全清楚这些实际上是做什么的.我对这些实际上做了什么有疑问.

1)

set @row:=0;
SELECT name, @row:=@row + 1 AS rownum
FROM animal
Run Code Online (Sandbox Code Playgroud)

2)

SELECT name, @row:=@row + 1 AS rownum
FROM (SELECT @row:= 0) c, animal
Run Code Online (Sandbox Code Playgroud)

两者都返回相同:

  name rownum
|| cat || 1 ||
|| cat || 2 ||
|| dog || 3 ||
|| dog || 4 ||
|| dog || 5 ||
|| ant || 6 ||
Run Code Online (Sandbox Code Playgroud)

上述两个查询有哪些不同之处,两者中的哪一个在范围,效率,编码习惯,用例方面采用了哪些?

3)现在如果我这样做:

set @row:=0;
SELECT name, @row:=@row + 1 AS rownum
FROM (SELECT @row:= 123) c, animal
Run Code Online (Sandbox Code Playgroud)

我明白了

  name  rownum …
Run Code Online (Sandbox Code Playgroud)

mysql sql select variable-initialization variable-declaration

6
推荐指数
1
解决办法
1584
查看次数

如何在模板中初始化为零/ NULL

在编写模板时,我想将我的变量初始化为一个值,该值用作零或null数据类型.如果我将其设置为0x00,它将作为任何类型的零/ NULL?

例如

这是模板声明

template <class T>
...
T A=0x00;
Run Code Online (Sandbox Code Playgroud)

现在,如果我定义了一个T => std :: string类型的实例,那么上面的语句是NULL什么?

怎么样" int"和" unsigned int".两者都用作"0"?

c++ variable-initialization

6
推荐指数
2
解决办法
5862
查看次数

我可以用三元初始化 char[] 吗?

我问一个问题,它并没有得到一个非常明确的答案,但看完后这篇文章,我开始喜欢const char[]const char*

我在用三元初始化时遇到了困难。鉴于const bool bar,我试过:

  1. const char foo[] = bar ? "lorem" : "ipsum" 这给了我错误:

错误:初始化程序无法确定的大小 foo

  1. const char foo[] = bar ? { 'l', 'o', 'r', 'e', 'm', '\0' } : { 'i', 'p', 's', 'u', 'm', '\0' } 这给了我错误:

错误:{令牌前的预期主表达式

有没有办法const char []用三元初始化 a ,还是我必须切换到const char*这里?

c++ arrays ternary variable-initialization char-pointer

6
推荐指数
1
解决办法
747
查看次数

Objective-C中的int的默认值是1吗?

我有这么简单的代码:

int x;
Run Code Online (Sandbox Code Playgroud)

x自动具有值1.我没有设置它,但是当我调试时,它显示x为1.

是否int有默认值1?!

int objective-c local-variables variable-initialization

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

C# - 在不知道变量的情况下初始化变量

我的数据库中有两个不同的表,每个表都根据其"SortOrder"显示给用户.我编写了两个函数,它们接受一行(或实体)并将其排序顺序与最接近的函数交换(向上或向下,具体取决于正在执行的函数).我需要使这些函数适用于两个不同的表,具体取决于事件发生的位置(具有相同功能的多个网格视图).这是我到目前为止(再次,向下移动有一个几乎相同的功能,但我不会发布,因为它将是多余的):

protected void moveUp(String ValId, String dbName)
    {
        int ValueId = Convert.ToInt32(ValId);
        DataModel.DataAccess.Entities dc = new DataModel.DataAccess.Entities();
        if (dbName.ToLower() == "table1")
        {
            DataModel.DataAccess.Table1 currentValue = dc.Table1.Single(table1item => table1item.Table1ItemId == ValueId);
        }
        else if (dbName.ToLower() == "table2")
        {
            DataModel.DataAccess.Table2 currentValue = dc.Table2.Single(table2item => table2item.Table2ItemId == ValueId);
        }
        try
        {
            //make the change and update the database and gridview
        }
        catch (InvalidOperationException)
        {
        }
    }
Run Code Online (Sandbox Code Playgroud)

显而易见的问题是我需要在if语句之前启动currentValue变量,否则它的"可能性"永远不会被声明,因此函数的其余部分(利用currentValue变量)将不起作用.

我的问题是:如果我不确定它将会是什么,我应该如何在if语句之前初始化变量?我认为这可能有用,但它说我仍然需要初始化它(" 必须初始化隐式类型的局部变量 "):

    var currentValue; //this is the …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net scope variable-initialization

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

初始化值是在编译时还是运行时计算的?

如果我有一个使用该rand()函数作为其初始化值的函数,那么当程序编译时,或者函数运行时,是否会找到该值?

说:

int function(int init = rand()){
  return init;
}
Run Code Online (Sandbox Code Playgroud)

如果在编译时找到它,我怎样才能使初始化成为动态的?我想我会NULL用作初始化值,但我如何区分NULLinit = 0

c++ runtime compile-time variable-initialization

5
推荐指数
1
解决办法
195
查看次数

5
推荐指数
1
解决办法
84
查看次数

在计算初始化值时是否考虑了变量?

这是我的小程序:

enum Type
{
    b = 1,
    c = 2
};

int main()
{
    Type b = b;
    std::cout << b << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

哪个输出0.我可以得出结论,上述定义包含这些连续步骤吗?

  1. 声明b为变量的类型Type
  2. 使用0默认值定义该变量和初始化
  3. 评估它的新值,包括变量本身(值为0)
  4. 将新值分配给变量.

并且,变量是否始终用0初始化,即使它们是显式初始化的?

我的第二个问题是 - 如果它在指定的例子中使用了它的初始化列表中的变量,为什么我不会得到关于歧义的错误?编译器是否首先尝试b在变量列表中查找,然后才检查声明的枚举?

c++ enums variable-initialization variable-declaration

5
推荐指数
1
解决办法
97
查看次数

一行初始化C中的所有变量和未初始化的值

在C语言中,是

int x, y, z = 0;
Run Code Online (Sandbox Code Playgroud)

和这个一样吗?

int x = 0;
int y = 0;
int z = 0;
Run Code Online (Sandbox Code Playgroud)

另外,如果我只是说,即使未初始化,int a;的值似乎也为零,但不是未定义的,如未初始化变量的值是什么?a

c side-effects variable-initialization

4
推荐指数
1
解决办法
1310
查看次数