当前位置: 首页 > news >正文

Kotlin基础类型扩展函数使用指南

Kotlin 基础类型的扩展函数解释与代码示例

1. 数字类型(包括 Int、Long、Short、Byte、Float、Double)

数字类型的扩展函数主要用于数值转换、范围约束和条件检查。以下是一些常见扩展函数:

  • coerceIn(min: T, max: T): T
    含义:将当前值约束在指定范围内。如果值小于 min,则返回 min;如果大于 max,则返回 max;否则返回原值。
    代码示例

    fun main() {val num = 10println(num.coerceIn(5, 15)) // 输出: 10 (在范围内)println(num.coerceIn(20, 30)) // 输出: 20 (小于 min)
    }
    
  • coerceAtLeast(min: T): T
    含义:确保当前值不小于 min。如果值小于 min,则返回 min;否则返回原值。
    代码示例

    fun main() {val num = 5.5println(num.coerceAtLeast(10.0)) // 输出: 10.0 (小于 min)println(num.coerceAtLeast(3.0)) // 输出: 5.5 (大于 min)
    }
    
  • coerceAtMost(max: T): T
    含义:确保当前值不大于 max。如果值大于 max,则返回 max;否则返回原值。
    代码示例

    fun main() {val num = 100Lprintln(num.coerceAtMost(50L)) // 输出: 50 (大于 max)println(num.coerceAtMost(200L)) // 输出: 100 (小于 max)
    }
    
  • toBigDecimal(): BigDecimal
    含义:将当前数字转换为 BigDecimal 类型,用于高精度计算。
    代码示例

    import java.math.BigDecimal
    fun main() {val num = 123.45fval bigDec = num.toBigDecimal()println(bigDec) // 输出: 123.45
    }
    
  • times(other: T): T(操作符扩展,对应 *
    含义:执行乘法操作。但注意,这是操作符函数,通常通过 * 调用。
    代码示例

    fun main() {val a = 5val b = 3println(a * b) // 输出: 15 (等同于 a.times(b))
    }
    
2. Char 类型

Char 类型的扩展函数用于字符转换、分类和检查。

  • toUpperCase(): Char
    含义:将字符转换为大写形式。如果字符无大写形式,则返回原字符。
    代码示例

    fun main() {val char = 'a'println(char.toUpperCase()) // 输出: Aprintln('1'.toUpperCase()) // 输出: 1 (数字无大写)
    }
    
  • toLowerCase(): Char
    含义:将字符转换为小写形式。如果字符无小写形式,则返回原字符。
    代码示例

    fun main() {val char = 'B'println(char.toLowerCase()) // 输出: bprintln('@'.toLowerCase()) // 输出: @ (符号无小写)
    }
    
  • isDigit(): Boolean
    含义:检查字符是否为数字(0-9)。
    代码示例

    fun main() {println('5'.isDigit()) // 输出: trueprintln('a'.isDigit()) // 输出: false
    }
    
  • isLetter(): Boolean
    含义:检查字符是否为字母(a-z, A-Z)。
    代码示例

    fun main() {println('x'.isLetter()) // 输出: trueprintln('7'.isLetter()) // 输出: false
    }
    
3. Boolean 类型

Boolean 类型的扩展函数主要用于逻辑操作和条件处理。

  • and(other: Boolean): Boolean
    含义:执行逻辑与操作。等同于 && 操作符,但作为扩展函数提供。
    代码示例

    fun main() {val a = trueval b = falseprintln(a.and(b)) // 输出: falseprintln(a && b)   // 输出: false (等效方式)
    }
    
  • or(other: Boolean): Boolean
    含义:执行逻辑或操作。等同于 || 操作符,但作为扩展函数提供。
    代码示例

    fun main() {val a = trueval b = falseprintln(a.or(b)) // 输出: trueprintln(a || b)  // 输出: true (等效方式)
    }
    
  • not(): Boolean
    含义:执行逻辑非操作。等同于 ! 操作符。
    代码示例

    fun main() {val bool = trueprintln(bool.not()) // 输出: falseprintln(!bool)     // 输出: false (等效方式)
    }
    
4. String 类型

String 类型的扩展函数非常丰富,用于字符串操作、转换和检查。

  • capitalize(): String
    含义:将字符串的首字母大写,其余字母小写。
    代码示例

    fun main() {val str = "hello world"println(str.capitalize()) // 输出: Hello world
    }
    
  • decapitalize(): String
    含义:将字符串的首字母小写,其余字母保持不变。
    代码示例

    fun main() {val str = "Hello World"println(str.decapitalize()) // 输出: hello World
    }
    
  • toIntOrNull(): Int?
    含义:尝试将字符串转换为 Int。如果转换失败(如非数字),则返回 null。
    代码示例

    fun main() {println("123".toIntOrNull()) // 输出: 123println("abc".toIntOrNull()) // 输出: null
    }
    
  • split(vararg delimiters: String): List<String>
    含义:根据分隔符拆分字符串为列表。
    代码示例

    fun main() {val str = "apple,banana,orange"val parts = str.split(",")println(parts) // 输出: [apple, banana, orange]
    }
    
  • isBlank(): Boolean
    含义:检查字符串是否为空或只包含空白字符(如空格、制表符)。
    代码示例

    fun main() {println("  ".isBlank())  // 输出: trueprintln("text".isBlank()) // 输出: false
    }
    
  • startsWith(prefix: String, ignoreCase: Boolean = false): Boolean
    含义:检查字符串是否以指定前缀开头。ignoreCase 参数控制是否忽略大小写。
    代码示例

    fun main() {val str = "Kotlin"println(str.startsWith("Kot")) // 输出: trueprintln(str.startsWith("kot", ignoreCase = true)) // 输出: true
    }
    
http://www.dtcms.com/a/544789.html

相关文章:

  • 城市建设网站做印刷品去哪个网站
  • 怎么查网站到期时间php网站搭建环境
  • 汽车行业SCRM:企业微信+服务商模式破解汽车服务行业痛点的案例分析
  • 【第五章:计算机视觉-项目实战之推荐/广告系统】3.精排算法-(4)重排算法:MMR、DPP原理精讲
  • Xamarin.Forms菜鸟笔记--10.获取点击/滑动 Image位置
  • 网络环路“侦探”指南:如何快速定位与根除网络风暴
  • Android 自定义Switch
  • HBuilder 上架 iOS 应用全流程指南:从云打包到开心上架(Appuploader)上传的跨平台发布实践
  • PHP基础知识
  • Obsidian 入门教程
  • 响应式购物网站模板广州网站优化电话
  • 中山 网站建设 骏域做ag视频大全网站
  • Vue二进制数据渲染成图片
  • 未来智能网联汽车的网络安全档案建立方法
  • 防止表单重复提交功能简单实现
  • 网络安全等级保护测评高风险判定实施指引(试行)--2020与2025版对比
  • Squid 可观测性最佳实践
  • 【深度学习新浪潮】DeepSeek-OCR深度解析:视觉-文本压缩驱动的新一代OCR技术革命
  • 官方网站建设投标书网站建设包含哪些
  • 相应式手机网站建设网站建设专员一定要会网站建设吗
  • 手机云台ESD整改案例-阿赛姆电子
  • 拆解ASP.NET MVC 核心优势:松耦合、易测试、SEO 友好、RESTful 实战指南
  • 远期合约和期权合约的区别是什么?
  • 2025年国内数字化档案管理软件选型速览
  • 基于FPGA的雷达信号处理设计工具包分享
  • 基于MATLAB的多机器人编队控制系统设计与实现
  • 网站建设计划表模板西安的网站设计单位
  • linux Debian 12 安装 Docker(手动)
  • 天津网站建设培训wordpress网页如何公开
  • 从零到一:用仓颉语言打造你的第一个鸿蒙应用