Iphone 在Objective-C中从未见过语法:打开/关闭大括号w/out方法/条件语句,目的是什么?
我正在查看我下载的一个Xcode项目,看到了我不熟悉的代码语法:Iphone 在Objective-C中从未见过语法:打开/关闭大括号w/out方法/条件语句,目的是什么?,iphone,ios,objective-c,cocoa-touch,syntax,Iphone,Ios,Objective C,Cocoa Touch,Syntax,我正在查看我下载的一个Xcode项目,看到了我不熟悉的代码语法: 大括号不属于方法签名或任何其他条件语句,它们只是浮动在那里。这有什么意义?纯粹出于代码隔离/可读性的目的?这只是块范围;在C和C++中也是一样的。块内声明的任何变量在块外都不可访问。我通常在switch语句中使用它: switch(x) { case 1: { const char *s = "hi"; } break; case 2: { const char *s = "ho"; } break; // et
大括号不属于方法签名或任何其他条件语句,它们只是浮动在那里。这有什么意义?纯粹出于代码隔离/可读性的目的?这只是块范围;在C和C++中也是一样的。块内声明的任何变量在块外都不可访问。我通常在
switch
语句中使用它:
switch(x) {
case 1: {
const char *s = "hi";
}
break;
case 2: {
const char *s = "ho";
}
break;
// etc.
}
请注意,有两个变量称为
s
,它们都不相互干扰,因为它们在各自的范围内。遗留代码需要{}才能进行声明
在C89中,您不能只执行int i;在任何地方声明仅在块的开头有效
查看此项了解更多解释
大括号括起的范围内的声明将被限制在该范围内,因此
标签
、图标
和按钮
在其外部将不可见。因此,它提供的局部性通常被认为是好的。您的意思是它在方法之外吗?不,此代码在方法之内。我对它为什么会出现感到困惑,但下面的答案是有意义的。有时我会使用这种风格对代码进行可视化分组,而不是出于任何语义目的。。。在switch语句中。我想我通常也在switch语句中使用它!不知道它可以在任何地方使用。谢谢你提供的信息。@Casper是的,你可以,正如你的问题所表明的,但对我来说,这并不常见。如果使用if
语句,它也很常见