【问题标题】:Swift: println value to passSwift:要传递的 println 值
【发布时间】:2015-10-24 15:08:28
【问题描述】:

我只是对 Swift 中的 println() 方法感到好奇。我应该通过value: T。实际上,我可以在那里写:floatstringcharint,甚至是NSData。如何创建和实现这样的类型?

编辑:对于那些不明白我的要求的人:value: T 是什么以及如何在我的函数中使用它?

【问题讨论】:

  • 你的问题我不清楚。 println 是泛型函数,T 是占位符类型。你想创建或实现什么?

标签: swift types


【解决方案1】:

我举个例子。假设aFloatVar 是一个浮点类型的变量,并且您想在适当的提示下编写它。这是你必须写的:

    println("The Value \(aFloatVar as Float)")

您也可以在同一行中使用两个变量。假设crd 是一个CGPoint,并且你希望将它写成x 和y。以下是您必须编写的代码:

    println("Coordinate X = \(crd.x as CGFloat) Y = \(crd.y as CGFloat) ")

这是我知道你必须写的,而不是 swift 中的 Value:T。

【讨论】:

    【解决方案2】:

    T 表示println 接受任何类型的参数。

    floatstringcharint等将转换为一个字符串。

    对象(如@ 987654327或@ 487654328 @)将有其description方法,并返回该方法。 NSData将为您提供数据的十六进制表示,而UIImage打印有关图像(宽度,高度等)的一些细节。

    如果要打印出您自己定义的类,则应考虑实现描述方法。否则你只会得到类名和内存地址。

    此外,您可以在字符串中嵌入任何类型的对象,并将其与println():

    相结合
    let a = 7
    let b = 6
    let c = a * b
    
    println("\(a) times \(b) is \(c)")
      // 7 times 6 is 42
    

    【讨论】:

      【解决方案3】:

      我几乎可以肯定,在里面,它只是调用String(value)

      但是如果您希望能够在您的方法中处理多种类型,您应该检查它是什么类型,并相应地处理它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-27
        • 2019-01-20
        • 1970-01-01
        相关资源
        最近更新 更多