在查看"What's new" of Kotlin 1.7.20时,我发现如果我想使用最新的功能,就需要将Kotlin语言版本设置为1.8.

到目前为止,我还没有设置语言版本.每个Kotlin版本的Kotlin语言版本的缺省值是多少?它在哪里被记录下来?

推荐答案

语言版本是发布版本.

对于您的特定示例,文档查询1.8,因为它是一个experimental特性.这意味着当前版本(1.7.20)为稳定版本提供/接受此功能not.

因此,您必须要求编译器激活计划在下一个Kotlin版本中使用的特性,即1.8.

编译器-language-version option可以用来激活实验特征,但也可以以另一种方式:防止使用在特定版本之后引入的特征.

EDIT:

最初,我声明可以为-language-version参数提供较旧的版本,以帮助维护特定的版本兼容性(这对社区可能很重要),并且仍然受益于新发布的编译器的错误修复和性能改进.

But看起来我错了,看起来language-version选项实际上是为试验性功能而设计的,而不是为了向后语言兼容性而设计的.在the following Youtrack issue中,他们提到,如果将language-version设置为旧语言版本,编译器应该发出警告.

Kotlin相关问答推荐

如何在 Big Data 中使用Inc过滤器?

如果一项工作失败,请继续在Kotlin 等待其他工作/子元素完成

Jetpack Compose中的数字 Select 器问题

将带大括号和不带大括号的Lambda值赋给@Composable函数

如何修改muableStateMapOf的值?

协程子作业(job)取消

Kotlin:调用 CoroutineScope.launch 与在协程内启动之间的区别

可组合项在返回后返回时组合导航句柄

Kotlin Path.useLines { } - 如何不获取 IOException("Stream closed")?

在 Kotlin 中,为什么在 `+` 之前但在 `.` 之前没有换行符?

是什么让 Kotlin 中的 String 类能够使用方括号?

API 'variant.getJavaCompile()' 已过时

无法在Kotlin中使用argb color int值?

封闭 lambda 的隐式参数被shadowed

应用程序在使用 Google Play 服务时遇到问题

如何获取Kotlin中变量的名称?

修改扩展函数中的this

Android Kotlin .visibility

kotlin中密封类和密封接口的区别是什么

使用 Moshi/Retrofit2 访问深度嵌套的 JSON 数组