通用号码添加功能

我想用kotlin语言创建一个通用函数,可以添加所有类型的Number,即Double, Float, Long, Int, Byte, Char, Short。所以我创建了一个函数。

fun <T : Number> add (a: T, b: T) = a + b 

但是Android Studio IDE在编译时抛出了错误。+ 签为 Number 类没有 plus 方法。为什么会这样?谁能提供一个通用函数的解决方案?kotlin 而不使用 if elsewhen 语句。

解决方案:

你的函数只知道它们都是Numbers,除非你检查它们的类型并投掷。这里没有 Number.plus(Number) 函数,所以你不能直接添加它们。你可以将它们转换为 Doubles 并添加这些,因为有一个 Number.toDouble() 功能。该类型不需要重新定义。

fun <T : Number> add (a: T, b: T) = a.toDouble() + b.toDouble()

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何在同一个项目中为多个火花应用指定不同的log4j.properties文件?

2022-9-9 5:30:19

未分类

为什么 "javascript_pack_tag "只能在 "body "中使用,而不能在html "head "中使用(Rails 6和webpack)?

2022-9-9 5:30:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索