【问题标题】:Where can I find the "math, strings, etc... libraries" for Swift?我在哪里可以找到 Swift 的“数学、字符串等库”?
【发布时间】:2014-06-08 17:02:13
【问题描述】:

我正在查看 Swift 文档,但找不到其他语言的参考资料...

示例:sin()cos()abs() 用于数学,uppercase()lowercase() 用于字符串,sort()pop()push() 用于数组等...

对于字符串,我发现了这个in the docs

Swift 的 String 类型无缝连接到 Foundation 的 NSString 班级。如果您正在使用 Cocoa 中的 Foundation 框架或 Cocoa Touch,整个 NSString API 可以在任何 您创建的字符串值,以及所描述的字符串功能 在这一章当中。您还可以将字符串值与任何 API 一起使用 需要一个 NSString 实例。

您能否指点我一些文档或在哪里可以找到列出的这些功能?

【问题讨论】:

    标签: ios cocoa swift


    【解决方案1】:

    看起来这正在工作......

    import Foundation
    var theCosOfZero: Double = Double(cos(0))  // theCosOfZero equals 1
    

    【讨论】:

    • let theCosOfZero = Double(cos(0.0)) // theCosOfZero 等于 1 我发现不需要导入。歧义投诉,除非使用 0.0。
    【解决方案2】:

    数学函数是在 Darwin 模块中定义的,因此您必须添加以下绝对最小值:

    import Darwin
    

    在大多数情况下import Foundationimport Cocoa 就足够了,因为这些模块导入了Darwin 模块。如果您需要访问 M_PI 或类似的常量,请使用 cmd 导航并单击 Darwin 模块和 Darwin.C。在这里,您会找到 C API 导入和其中的 Darwin.C.math。通过这种方式,您可以检查已经转换为 Swift 的可用内容。尽管如此,所有 C API 都可以通过 import Darwin 获得。

    你不能直接发出import Darwin.C.math,因为你会看到以下运行时错误(如果你不在操场上,或者类似的错误):

    Playground execution failed: Error in auto-import:
    failed to get module 'math' from AST context
    

    游乐场代码示例:

    import Darwin
    
    func degToRad(degrees: Double) -> Double {
        // M_PI is defined in Darwin.C.math
        return M_PI * 2.0 * degrees / 360.0
    }
    
    for deg in 0..<360 {
        sin(degToRad(Double(deg)))
    }
    

    【讨论】:

    • 达尔文模块的文档在哪里?
    • 这是 Darwin 的一个很长的文档,但这里有一篇博客文章,其中包含一些非常基本的信息。听起来像是 C 标准库的接口 en.swifter.tips/asmname
    【解决方案3】:

    sin()cos()abs() 是 math.h 中定义的 C 方法 https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man3/math.3.html

    "str".uppercaseString()"str".lowercaseString() 是 NSString 方法。

    sort() 是 Swift 标准库的一部分,记录在 https://developer.apple.com/documentation/swift/array/1688499-sort

    Array.append()Array.removeLast() 也在 Swift 标准库中定义,记录在 https://developer.apple.com/documentation/swift/array

    【讨论】:

    • 对于 Swift 标准库中的那些没问题,但对于 math.h,当几乎每种语言都有自己的语言时,为什么我还需要 C 库?
    • 附言。你能提供一个在 Swift 操场上使用 sin() 的例子吗?谢谢!
    • @Napolux 你不需要做任何事情来访问数学函数,只需在 XCode 中输入 sin(1.0) (或者我假设是 Swift 游乐场,虽然我还没有使用过)。内部使用 C 库的原因是因为 Swift 使用与 ObjC 相同的基础库(Apple 可能对维护两个独立的基础库没有兴趣)。
    • uppercaseString() 实际上是 swift 标准库的一部分 - see reference docs
    • @jhurliman:“你不需要做任何事情来访问数学函数”是不正确的。你需要import Darwin,或者导入一些可以导入 Darwin 的东西(例如 Foundation)。
    猜你喜欢
    • 2013-09-20
    • 2020-11-23
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多