Kotlin REPL解构声明不适用于Pair

我正在尝试学习Kotlin,并在REPL中编写了这个示例代码。 以下代码不会导致崩溃。

Welcome to Kotlin version 1.1.0 (JRE 1.6.0_65-b14-468-11M4833) Type :help for help, :quit for quit >>> val (a:String, b:Int) = Pair(1,2) >>> 

在Android Studio 2.3中,以下代码失败

 val (a:String, b:Int) = Pair(1,2) // 'component1() function returns 'Int', but 'String' is expected 

这是一个REPL错误?

一个Int是一个Int ,一个String是一个String ; 解构不能在类型之间转换。 因此,您指定的代码将不会编译,但将会执行以下操作:

 val (a: String, b: Int) = Pair("1", 2) val (c: Int, d: Int) = Pair(3, 4) 

请注意,明确指定类型不是必需的:

 val (a, b) = Pair("1", 2) val (c, d) = Pair(3, 4) 

我不确定为什么REPL失败,但REPL中的以下内容会导致“未解决的引用”错误,因此显然解构不起作用,但REPL不报告错误。 这似乎是一个已知的问题: KT-5620 。

 Welcome to Kotlin version 1.1.0 (JRE 1.8.0_111-b14) Type :help for help, :quit for quit val (a, b) = Pair(1, 2) println(a) // Error: Unresolved reference: a