微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

F# – 乘以float乘以int

可能是一个愚蠢的问题,但我刚刚开始使用F#而且我遇到了一些问题.

我有这样的功能

let multiplyByTwo x = x * 2

当我这样称呼时:

let result = multiplyByTwo 5

一切都好,结果是10.

当我这样称呼时:

let result = multiplyByTwo 2.5

我希望得到5或5.0.但实际结果如下:

let result = multiplyByTwo 2.5;;
———————————^^^

stdin(4,28): error FS0001: This expression was expected to have type

06003

but here has type

06004

因为我希望这个函数有点通用(即接受浮点数和整数),我不喜欢这个.我的问题当然是:如何解决这个问题?

解决方法

let inline mulBy2 x = (float x) * 2.0

let a = mulBy2 3 // 6.0 : float
let b = mulBy2 2.5 // 5.0 : float
let c = mulBy2 "4" // 8.0 : float

原文地址:https://www.jb51.cc/css/215604.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。