gpt4 book ai didi

java - Java 10 中的 "var"到底是什么类型的 token ?

转载 作者:太空狗 更新时间:2023-10-29 22:33:47 25 4
gpt4 key购买 nike

在 Heinz Kabutz 的最新一期时事通讯中,#255 Java 10: Inferred Local Variables ,表明var在Java 10中不是保留字,因为你也可以使用var作为标识符:

public class Java10 {
var var = 42; // <-- this works
}

但是,您不能使用 assert 作为标识符,如 var assert = 2,因为 assert 是保留字。

正如链接的时事通讯中所述,var 不是保留字这一事实是个好消息,因为这允许使用 var 的旧版 Java 中的代码作为在 Java 10 中编译时没有问题的标识符。

那么,var 是什么?它既不是显式类型也不是语言的保留字,所以它可以作为标识符,但是在 Java 10 中用于声明局部变量时它确实具有特殊含义。在局部变量声明?

此外,除了支持向后兼容性(通过允许包含 var 作为标识符的旧代码进行编译)之外,var 是否还有其他优势 not 是保留字吗?

最佳答案

根据 JEP-286: Local-Variable Type Inference , var

not a keyword; instead it is a reserved type name.

(JEP 的早期版本为作为保留类型名称或上下文相关关键字的实现留有余地;最终选择了前一种路径。)

因为它不是“保留关键字”,所以仍然可以在变量名(和包名)中使用它,但不能在类或接口(interface)名中使用。

我认为不将 var 设为保留关键字的最大原因是与旧源代码的向后兼容性。

关于java - Java 10 中的 "var"到底是什么类型的 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49089124/

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