我不确定它的正确名称是什么(以及如何搜索它),但我只是查看了一些代码并看到它组织在{}'内部的语句中。秒。我想知道支持这样的分组语句的原因是什么?
代码如下所示:
// Check horizontal
{
left_to_win := 3
stop_1 := false
stop_2 := false
for x := 1; x <= 4; x++ {
// ....
}
}
// Check vertical
{
left_to_win := 3
stop_1 := false
stop_2 := false
for x := 1; x <= 4; x++ {
// ...
}
}
// Check diagonal bottom to top
{
left_to_win := 3
stop_1 := false
stop_2 := false
for x := 1; x <= 4; x++ {
// ...
}
}
在具体示例中,似乎可以轻松地将其重构为单个实用程序函数。这个功能的名称是什么,有没有很好的时间使用它?
答案 0 :(得分:1)
这些大括号正在为局部变量定义更具体的范围。在您的情况下,每个范围都声明" ".join(new_sentence)
,stop_1
和stop_2
。如果没有额外的花括号,你会得到一个编译器错误,说你正在重新声明或定义那些变量,因为你正在使用在一个语句中声明和赋值的简写left_to_win
。在这种情况下,代码可以被写入相反,只需在初始声明中使用:=
,然后在:=
中使用=
进行后续分配,这将消除对大括号定义的范围的需要。
有关详细信息,请参阅here。