fun main() { // Map変数 itemsを定義 val items: Map<String, Any> = mutableMapOf( "name" to "kato", "age" to 10 ) //Integer型である事を確認 println(items["age"] is Integer) //=> true //1 println()メソッドの実行 println(items["age"]) //=> 10 //2 比較演算子 == println(items["age"] == 10) //=> true //3 比較演算子 < println(items["age"] < 9) // => エラー }
現在kotlinに入門中なのですが上記の様にMap変数のitemsに対して["age"]keyでvalueを取得し、1,2,3の処理を行なう際に
3の比較演算子 < を使用すると下記の様にエラーが表示されてしまいます。
Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: public fun String.compareTo(other: String, ignoreCase: Boolean = ...): Int defined in kotlin.text
String.compareToメソッドが呼び出されているが比較対象がIntのためコンパイルできないと言われていると思うのですが、items["age"]で取得できるvalueはInt型のためなぜString.compareTo()が実行されているのか理解できていません。
自分がもともとPHPをメインに使用していたためJavaやkotolinの仕様がよくわかっていないのですがどなたか解説と解決策を教えていただけないでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/30 03:22