变量名中的大括号
Curly braces in variable names
最近我一直在浏览 facebooks folly 库的一些代码,看到一个名为 like
的变量
HTTPServer* const server_{nullptr};
作为 class 成员。
我以前从未见过这样的东西,想知道是否有任何特殊含义。谷歌搜索只让我在 boost 代码中找到了类似这个的其他示例。
也许有人有解释。
它用作初始化列表。在您的情况下,HTTPServer
指针将设置为 nullptr
,但您可以使用大括号,即使是普通类型,例如 int
、float
等
它的作用是初始化变量里面的值,也就是说下面两种态度是一样的:
int x = 10;
int x{10};
您还可以用更简单的方式初始化数组:
int x[5] = { 1, 2, 3, 4, 5 };
而不是使用:
x[0] = 1;
x[1] = 2;
x[2] = 3;
x[3] = 4;
x[4] = 5;
如果你愿意,你也可以使用
int x{};
用值 0 初始化 x
。
最近我一直在浏览 facebooks folly 库的一些代码,看到一个名为 like
的变量HTTPServer* const server_{nullptr};
作为 class 成员。 我以前从未见过这样的东西,想知道是否有任何特殊含义。谷歌搜索只让我在 boost 代码中找到了类似这个的其他示例。
也许有人有解释。
它用作初始化列表。在您的情况下,HTTPServer
指针将设置为 nullptr
,但您可以使用大括号,即使是普通类型,例如 int
、float
等
它的作用是初始化变量里面的值,也就是说下面两种态度是一样的:
int x = 10;
int x{10};
您还可以用更简单的方式初始化数组:
int x[5] = { 1, 2, 3, 4, 5 };
而不是使用:
x[0] = 1;
x[1] = 2;
x[2] = 3;
x[3] = 4;
x[4] = 5;
如果你愿意,你也可以使用
int x{};
用值 0 初始化 x
。