如何解决Kotlin中的“不兼容的类型:IntRange和Int”错误
下面是我的代码
import java.util.*
fun main() {
println("Hello World")
dayOfWeek()
}
fun dayOfWeek() {
var date : Int = Calendar.getInstance().get(Calendar.DATE).toInt()
when (date) {
1..5 -> {
println("Hello 1-5")
}
5 -> {
println("Hello 5")
}
3,7,9 -> {
println("3 7 9")
}
}
}
不兼容的类型:IntRange和Int
如何解决此问题?
解决方法
您需要在in
之前指定range
前缀
fun main() {
println("Hello World")
dayOfWeek()
}
fun dayOfWeek() {
when (Calendar.getInstance().get(Calendar.DATE)) {
in 1..5 -> {
println("Hello 1-5")
}
5 -> {
println("Hello 5")
}
3,7,9 -> {
println("3 7 9")
}
}
}
不确定应用程序中的用例是什么,但是请注意,当日期为3
或5
时,第二和第三种情况将不会执行
您要从“日历”中提取的值为Int
。 when
表达式将尝试将其与IntRange
类型匹配,该类型由文字1..5
表示(有关类here的更多信息)。这些类型不同,因此会出现错误
不兼容的类型:IntRange和Int
您要问的是整数是否在范围中,因此您只需将in
前缀到该范围,如here为when
与范围的用法所指定。
所以代码看起来像
fun dayOfWeek() {
var date : Int = Calendar.getInstance().get(Calendar.DATE).toInt()
when (date) {
in 1..5 -> {
println("Hello 1-5")
}
5 -> {
println("Hello 5")
}
3,9 -> {
println("3 7 9")
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。