首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scala类型与短字符和乘法不匹配

scala类型与短字符和乘法不匹配
EN

Stack Overflow用户
提问于 2020-11-25 08:23:30
回答 1查看 51关注 0票数 0

我有两个函数可以求出数字的阶乘,一个函数使用整数,但第二个函数只使用短整型会产生错误。这是代码

代码语言:javascript
复制
var fac16i: Function2[Short, Short, Short] = new Function2[Short, Short, Short] {
    @tailrec override def apply (x: Short, acc: Short = 1): Short = {
      if (x.toShort <= 1.toShort) acc.toShort
      else apply(x - 1, x  * acc)
    }
  }

  var fac32i: Function2[Int, Int, Int] = new Function2[Int, Int, Int] {
    @tailrec override def apply (x:Int, acc:Int=1): Int = {
      if (x<=1) acc
      else apply(x-1, x * acc)
    }
  }

有人能帮我一下吗。注意:我使用的是scala-native。

EN

回答 1

Stack Overflow用户

发布于 2020-11-25 08:35:32

.toShort强制转换从不需要的地方移动到需要的地方。

代码语言:javascript
复制
if (x <= 1) acc
else apply((x-1).toShort, (x*acc).toShort)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64996803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档