【发布时间】:2017-03-28 06:12:05
【问题描述】:
我正在玩 Java 语法,所以这个问题纯粹是出于好奇。这段代码:
http://www.google.com
Object val = 5 <- 4;
不编译,因为标签 (http)“必须后跟声明”。以下两个变体可以编译:
http://www.google.com
{ Object val = 5 <- 4; }
和
Object val;
http://www.google.com
val = 5 <- 4;
在这两种情况下,我都从声明切换到了表达式。 这让我想知道 Java 中的“语句”到底是什么,但 doc 状态:
除了表达式语句,还有另外两种语句:声明语句和控制流语句。声明语句声明一个变量。
JLS 只是说(在标签上)
标识符被声明为立即包含的语句的标签。
它没有说任何关于“表达式语句”的内容。
我是否遗漏了什么,或者这只是一个不清楚/不正确的规范?
【问题讨论】:
-
"http://www.google.com"的表达是什么? -
@MykhayloKopytonenko 这不是一个表达式,它只是评论中的一些文字。标签是
http:,然后//开始一行注释。棘手棘手! :) -
代码太疯狂了!