You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin空安全:使用Elvis与!!操作符实现nullable空值校验函数

Kotlin空安全题目实现

题目要求

完成nullable函数编写,必须同时用到Kotlin的Elvis操作符和!!非空断言操作符,逻辑规则如下:

  • 入参为非空字符串时,返回字符串长度
  • 入参为null时,返回-1
  • 不得修改题目给出的main函数原有框架代码

给定基础代码

fun nullable(nullableString: String?): Int {
   
}
fun main(args: Array<String>) {
   val str = readLine()!!
    var result = -100
    if(str=="null") {
        result = nullable(null)
    }else
        result = nullable(str)
    println(result)
}

正确实现代码

只需要补全nullable函数内部逻辑即可,补全后完整代码如下:

fun nullable(nullableString: String?): Int {
    // 用Elvis操作符先处理空值分支:入参为null直接返回-1
    val nonNullStr = nullableString ?: return -1
    // 走到此处入参必然非空,用!!断言后取长度返回
    return nonNullStr!!.length
}
fun main(args: Array<String>) {
   val str = readLine()!!
    var result = -100
    if(str=="null") {
        result = nullable(null)
    }else
        result = nullable(str)
    println(result)
}

实现说明

  • Kotlin里的?:就是Elvis操作符,左侧值为null时会直接执行右侧逻辑,这里用来做前置空拦截,符合空值返回-1的要求
  • !!是非空断言操作符,用来把可空类型强转为非空类型,前面已经做空值判断拦截了null情况,这里用断言不会触发空指针异常,满足题目要求必须使用该操作符的规则
  • 程序运行逻辑:控制台输入普通字符串时,函数返回字符串长度;输入内容为null时,函数返回-1

内容的提问来源于stack exchange,提问作者Umashankar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 08:03:21