Reputation: 125
I'm fairly new to Kotlin. I want to print the count of a character in a string. For this, I'm using Kotlin's groupingBy()
function and applying eachCount()
to it.
My code:
val str = "0100101101010"
val countMap : Map<Char, Int> = str.groupingBy { it }.eachCount()
println(countMap["1"])
But I'm getting this error in the console: Type inference failed. The value of the type parameter K should be mentioned in input types (argument types, receiver type or expected type). Try to specify it explicitly.
Can someone explain to me what I'm doing wrong here?
Upvotes: 2
Views: 427
Reputation: 271585
"1"
is a string literal, but your map has characters as keys. You should use the character literal '1'
:
println(countMap['1'])
The reason for that confusing error message is because it is trying to call this get
overload, which is generic. It tries to infer the generic type arguments, and fails.
Upvotes: 3