当我发现一段代码被一个scan: {}
块包围时,我正在浏览一些基本的Java对象。以下代码来自String类中的toLowerCase()方法。
scan: {
for (firstUpper = 0 ; firstUpper < len; ) {
char c = value[firstUpper];
if ((c >= Character.MIN_HIGH_SURROGATE)
&& (c <= Character.MAX_HIGH_SURROGATE)) {
int supplChar = codePointAt(firstUpper);
if (supplChar != Character.toLowerCase(supplChar)) {
break scan;
}
firstUpper += Character.charCount(supplChar);
} else {
if (c != Character.toLowerCase(c)) {
break scan;
}
firstUpper++;
}
}
return this;
}
有人可以解释一下该scan:{}
块的用途以及该语法的来源吗?除非在三元运算符中使用过,否则在Java中像这样的单词之后我还没有看到冒号。
谢谢!
编辑:更新标题以正确匹配已回答的问题。
在这里,scan:
只是一个标签。该break <label>
语法允许人们摆脱外部循环,并模拟某种形式的goto
语句。语法记录在JLS中:
break
带有标签的语句Identifier
试图将控制权转移到Identifier
与其标签相同的封闭的带标签的语句(第14.7节);该语句称为中断目标,然后立即正常完成。在这种情况下,突破目标不一定是switch
,while
,do
,或for
语句。
问题内容: 我正忙于学习证书,偶然发现了一个我从未听说过的概念-“标签声明”。例如: ‘label’:’statement’ 所以我的问题是..为什么?这有什么用?什么时候要使用这样的东西? 问题答案: 我知道的唯一用途是可以在或语句中使用标签。因此,如果您有嵌套循环,则可以一次突破多个层次: 如该示例所示,如果您以嵌套的方式一次遍历两件事(例如搜索匹配项)并想要继续进行,或者您正在执行常规迭代,
如果设置了环境变量,我想设置一个属性。我在上面搜索了很多,我发现的都是类似于下面代码的东西,但我总是得到错误: [FATAL]不可解析的POM y:\maven\parent-pom\POM.xml:TEXT后面必须紧随END_TAG而不是START_TAG(位置:START_TAG s een...roperties“\r\n classpatherf=”maven.plugin.classpa
Im使用具有2000多个参数标记的构建大型数据库调用。 我收到这个错误 我试着搜索API文档和google,但找不到如何配置它。 有没有人知道是否有可能达到这个限度?我知道这将是一个缓慢的数据库调用,但这是好的现在。 从长远来看,这是否会给我带来任何问题?批量运行是否会更好?
问题内容: 我使用具有2000多个参数标记的大型数据库调用进行构建。 我收到这个错误 我尝试搜索API文档和Google,但是找不到如何配置它。 有谁知道是否有可能提高这个限制?我知道这将是一个缓慢的数据库调用,但是现在还可以。 从长远来看,这还会给我造成任何问题吗,我最好分批运行吗? 问题答案: 接缝处好像停留在2000年。这是驱动程序来源的一部分。 这是一个博客,其中包含有关如何解决该问题的示
我不太明白java中语句的定义。我在网上读了很多页,还有其他问题,但没有一个能给我一个准确的答案。 我们这里有多少陈述? 我想说,这是一个声明。然而,我们也可以这样写: 这是两个声明,对吗?
问题内容: 我正在使用nltk,因此我想创建自己的自定义文本,就像nltk.books上的默认文本一样。但是,我只是想起像 我想发现任何输入“文本”的方式: python或nltk的哪种方法允许我执行此操作。更重要的是,我如何消除标点符号? 问题答案: 这实际上是在nltk.org的主页上: