Объявление об отказе от рекламы 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 а StringString ; деструктурирование не конвертирует между типами. Таким образом, код, который вы указали, не будет компилироваться, но следующее:

 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 приводит к ошибке «Unresolved reference», так что деструктуризация не работает, но 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