gpt4 book ai didi

java - 初始化 block 和指定范围的 block 之间有区别吗

转载 作者:行者123 更新时间:2023-11-30 04:58:19 25 4
gpt4 key购买 nike

如果你写一个类并且使用这样的东西

...
int x;
{ x = 2; }
...

这将是一个初始化 block ,对吧?

那么如何使用花括号来指定范围,以便它们像任何其他代码一样执行?基本上,它们不是构造函数的一部分。

例如

如果您要在 switch 语句中使用 block ,这会像初始化 block 一样执行吗?

    switch(...)
{
case :
{ // this right here how does the compiler know the difference?
...
break;
}
}

最佳答案

初始化 block 仅适用于类范围内且前面没有函数原型(prototype)的 block (即不是函数体的 block )。

在函数体内,您创建的任何 block 都会引入作用域,但不会被解释为初始化。

示例:

public class NameOfClass {
{
// This is an initalization block
}

AccessModifier ReturnType nameOfFunction(ParamType nameOfParam) {
// This is a function body and is not an initialization

{
// This introduces scope, is not an initialization
}
}
}

关于java - 初始化 block 和指定范围的 block 之间有区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7782200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com