kotlin NaN坑
发表于|更新于
|浏览量:
发脾气的人比被发脾气的对象所受的损失更大——霍姆斯
今天发现一个坑,在代码里尝试toBigDecimal抛出了NumberFormatException
debug一看,发现值为NaN
在kotlin里,这样的代码会导致NaN
1 | val nan = 0.0 / 0.0 |
最重要的是NaN,不会通过 安全调用操作符?. 的判断,因为其属于有值
所以上述代码可以改为
1 | val nan = 0.0 / 0.0 |
相关推荐
2023-02-03
kotlin泛型多个上界
善气迎人,亲如兄弟;恶气迎人,害于戈兵。——管子 java中,我们可以使用<T extends Comparable<? super T>, Serializable>来指定多个接口的泛型限制 kotlin中 对应的是上界 上界最常见的约束类型是与 Java 的 extends 关键字对应的 上界: 1fun <T : Comparable<T>> sort(list: List<T>) { …… } 冒号之后指定的类型是上界:只有 Comparable<T> 的子类型可以替代 T。 例如: 12sort(listOf(1, 2, 3)) // OK。Int 是 Comparable<Int> 的子类型sort(listOf(HashMap<Int, String>())) // 错误:HashMap<Int, String> 不是 Comparable<HashMap<Int, String>> 的子类型 默认的上界...
2023-07-19
kotlin的..<运算符
此处果有可乐,我即别无所思。——林语堂 今天升级了kotlin版本1.9.0 发现了个新特性 https://kotlinlang.org/docs/whatsnew19.html#stable-operator-for-open-ended-ranges 这个是用来取代以前的until函数的 12345678fun main() { for (number in 2 until 10) { if (number % 2 == 0) { print("$number ") } } // 2 4 6 8} 现在: 12345678fun main() { for (number in 2..<10) { if (number % 2 == 0) { print("$number ") } } ...
2022-08-17
aop注解在整个类生效
志向是天才的幼苗,经过热爱劳动的双手培育,在肥田沃土里将成长为粗壮的大树。——苏霍姆林斯基 之前写过自定义注解和AOP,但其是作用于方法上 今天用kotlin写一个作用在类上的:主要是@annotation换成@within 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647package com.ruben.simplebootimport org.aspectj.lang.ProceedingJoinPointimport org.aspectj.lang.annotation.Aroundimport org.aspectj.lang.annotation.Aspectimport org.springframework.boot.autoconfigure.SpringBootApplicationimport org.springframework.boot.runApplicationimport org.springframework.ster...
2023-01-05
kotlin获取属性注解
微笑具有一种挽救力,它可以点亮天空,可以振作精神,可以改变你周围的气氛,更可以改变你——乔·吉拉德 kotlin里获取属性注解首先引入反射依赖: 1234<dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-reflect</artifactId></dependency> 完整: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmln...
2022-09-18
拓展函数
对于聪明人来说,劝告是多余的;对于愚昧人来说,劝告是不够的——莫里哀 中文文档 拓展函数的定义: 1fun String.delBlank() = this.filter { !Character.isWhitespace(it) } 以及: 123fun Int?.default(i: Int = 0) = ifun String?.default(i: String = "") = i 使用: 123456789101112fun String.delBlank() = this.filter { !Character.isWhitespace(it) }val noBlank = "Hello World".delBlank()println(noBlank)fun Int?.default(i: Int = 0) = ifun String?.default(i: String = "") = ival s: Int? = nullprintln(s.default...
2022-08-27
kotlin延迟属性
得饶人处且饶人——曹雪芹 kotlin习惯用法见:https://www.kotlincn.net/docs/reference/idioms.html 这里试试延迟属性: https://www.kotlincn.net/docs/reference/delegated-properties.html#%E5%BB%B6%E8%BF%9F%E5%B1%9E%E6%80%A7-lazy 1234567val lazyValue: String by lazy { println("computed!") "Hello"}println(lazyValue)println(lazyValue) 运行结果: 123computed!HelloHello

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog