微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Kotlin中的“不兼容的类型:IntRange和Int”错误

如何解决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")
        }
    }
}

不确定应用程序中的用例是什么,但是请注意,当日期为35时,第二和第三种情况将不会执行

,

您要从“日历”中提取的值为Intwhen表达式将尝试将其与IntRange类型匹配,该类型由文字1..5表示(有关类here的更多信息)。这些类型不同,因此会出现错误

不兼容的类型:IntRange和Int

您要问的是整数是否在范围中,因此您只需将in前缀到该范围,如herewhen与范围的用法所指定。

所以代码看起来像

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 举报,一经查实,本站将立刻删除。