如何使用sqrt()
、floor()
、round()
、sin()
等数学函数?
执行以下操作时:
_ = floor(2.0)
_ = sqrt(2.0)
我得到了:
错误:使用了无法解析的标识符'floor‘
错误:使用了无法解析的标识符'sqrt‘
发布于 2014-06-03 18:25:43
正如其他人所指出的,你有几个选择。如果你只想要数学函数。您只能导入Darwin。
import Darwin
如果您想要数学函数和其他标准类和函数。您可以导入Foundation。
import Foundation
如果你想要用户界面的所有东西和类,这取决于你的游乐场是用于OS X还是iOS。
对于OS X,您需要导入Cocoa。
import Cocoa
对于iOS,您需要导入UIKit。
import UIKit
您可以通过打开文件检查器(⌥⌘1)轻松发现您的游乐场平台。
发布于 2014-06-07 01:41:37
确切地说,达尔文就足够了。不需要导入整个Cocoa框架。
import Darwin
当然,如果您需要来自Cocoa或Foundation或其他更高级别框架的元素,则可以改为导入它们
发布于 2016-01-24 14:14:51
对于在Linux上使用swift 2.2的人,例如Ubuntu,导入是不同的!
正确的方法是使用Glibc。这是因为在OS和iOS上,基本的类Unix的API在Darwin中,而在linux中,它们位于Glibc中。在这里,导入Foundation不会对您有所帮助,因为它本身不会造成区别。为此,您必须自己显式导入它:
#if os(macOS) || os(iOS)
import Darwin
#elseif os(Linux) || CYGWIN
import Glibc
#endif
您可以关注基础框架here的开发来了解更多信息
编辑: 2018年12月26日
作为@Cœur的pointed out,从swift 3.0开始,一些数学函数现在是类型本身的一部分。例如,Double现在有一个squareRoot函数。同样,ceil
、floor
、round
都可以用Double.rounded(FloatingPointRoundingRule) -> Double
实现。
此外,我刚刚在Ubuntu18.04上下载并安装了最新稳定版本的swift,看起来你现在只需要导入Foundation
框架就可以访问数学函数了。我尝试查找有关此问题的文档,但什么也没有找到。
➜ swift
Welcome to Swift version 4.2.1 (swift-4.2.1-RELEASE). Type :help for assistance.
1> sqrt(9)
error: repl.swift:1:1: error: use of unresolved identifier 'sqrt'
sqrt(9)
^~~~
1> import Foundation
2> sqrt(9)
$R0: Double = 3
3> floor(9.3)
$R1: Double = 9
4> ceil(9.3)
$R2: Double = 10
https://stackoverflow.com/questions/24012511
复制相似问题