当前位置: 首页 > 面试题库 >

有没有办法将任何通用数值转换为Double?

安明亮
2023-03-14
问题内容

因此,我有一个方法,其中包含3种不同类型的参数:

Int32IntDouble。因此,想法是使用泛型来最小化接口

func resetProgressBarChunks<T:Numeric>(originalIterationCount: T) {
    guard let iCount = originalIterationCount as? Double else {return}

但是我已经意识到,是在运行时,Int32and Int参数实际上会使那失败guard let。这是有道理的,这只是我的一厢情愿。

但是,如果我尝试将a强制Numeric转换为双精度,编译器将吠叫:

func resetProgressBarChunks<T:Numeric>(originalIterationCount: T) {
    guard let iCount = Double(originalIterationCount) else {return}

无法使用参数’(T)’调用类型’Double’的初始化程序

我认为这也是有道理的,因为没有Double的初始化程序需要Generic。

因此,看起来我将被迫编写具有不同参数类型的3种方法。在Int32Int参数的类型,将只投入Double,然后调用Double方法。这真的是最好的方法吗?我真的希望我可以Numeric以某种方式利用


问题答案:

仅出于句法说明的目的,这里有一个示例,使它成为泛型并针对所有三种类型都达到Double:

func f<T:Numeric>(_ i: T) {
    var d = 0.0
    switch i {
    case let ii as Int:
        d = Double(ii)
    case let ii as Int32:
        d = Double(ii)
    case let ii as Double:
        d = ii
    default:
        fatalError("oops")
    }
    print(d)
}

但是,这是否比重载更好?在我看来,重载要好得多,因为有了泛型,我们就让一堆不需要的类型进入了门。数字合同是谎言。Double,Int和Int32的三重过载集会使编译器成为事实的源头。



 类似资料:
  • 问题内容: 我的软件在UTF8中得到的字符串比我转换为ISO 8859 1所需的字符串多。我知道UTF8域比iso 8859大。但是UTF8中的数据先前已从ISO上转换,所以我不应该错过任何内容。 我想知道是否存在从UTF8转换为iso-8859-1的简单/直接方法。 谢谢 问题答案: 这是您可能会发现有用的功能:。它可以转换为(包括欧元,但没有),但是对于-> -> 往返的-> 转换部分,它也可

  • 我目前正在将我的“旧”基于Python的聊天机器人改写成golang。我遇到的一个问题是我不能将PDF转换成jpeg。我想这样做,这样我就可以轻松地将它发送到聊天室。 已经用bimg(根本不起作用)和imagemagick(gopkg.in/gographics/imagick.v3/imagick)尝试过这一点,正如在对另一个线程的回答中提供的那样:https://stackoverflow.c

  • 我想知道如何将此Twilio CURL代码转换为RestClient我被困在请求中。我不知道如何格式化它的顺序传递Twilio SID,令牌,从,到和正文短信。 为此: 这是我的代码,现在编译100%,在我运行代码后,我得到一个响应“完成”没有错误消息,也没有在twilio仪表板上的条目,它不会发送短信,任何想法您的帮助将不胜感激。

  • 我正在尝试创建一个神经网络来下棋,但首先,我需要将棋盘转换为整数列表。我正在使用国际象棋棋盘和游戏的python国际象棋模块。我目前有一个国际象棋棋盘类,但找不到将其转换为列表的方法。 我试过使用方法,但它返回的格式方案很难转换。 下面是我需要的代码: 现在,使用我得到的方法 如您所见,解析并转换为整数列表非常困难,因为有和。 预期的输出是这样的(逐行): 例如,这些可以是映射到PEICE的整数:

  • 问题内容: 是否有内置的方法将布尔值转换为整数,反之亦然?我尝试了普通的转换,但是由于它们使用不同的基础类型,因此经典的转换方式是不可能的。我已经填写了一些规范,但尚未找到答案。 问题答案: 从int到bool很容易,只需完成操作即可。换句话说,由于Go不支持三元运算符,因此您必须执行以下操作: 您当然可以将其放在函数中: 整数有很多种可能的布尔解释,但它们都不一定是自然的,因此必须说出您的意思是

  • 问题内容: 我读这篇文章了解如何将PDF转换为CMYK,但是当我试图接受的解决方案 如果我的原始pdf文件不包含图片,则不会获得具有CMYK颜色空间的pdf文件。如果在其中添加图片,我将得到正确的结果(已选中)。 例如,如果我用一个矩形创建一个svg,将其导出为pdf,然后使用ghostscript命令,则它在sRBG颜色空间中仍会得到一个pdf。但是,如果我在svg中添加图片,则效果很好。 解决