首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Swift中的数学函数

Swift中的数学函数
EN

Stack Overflow用户
提问于 2014-06-03 18:13:30
回答 6查看 106.8K关注 0票数 97

如何使用sqrt()floor()round()sin()等数学函数?

执行以下操作时:

代码语言:javascript
运行
复制
_ = floor(2.0)
_ = sqrt(2.0)

我得到了:

错误:使用了无法解析的标识符'floor‘

错误:使用了无法解析的标识符'sqrt‘

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-06-03 18:25:43

正如其他人所指出的,你有几个选择。如果你只想要数学函数。您只能导入Darwin。

代码语言:javascript
运行
复制
import Darwin

如果您想要数学函数和其他标准类和函数。您可以导入Foundation。

代码语言:javascript
运行
复制
import Foundation

如果你想要用户界面的所有东西和类,这取决于你的游乐场是用于OS X还是iOS。

对于OS X,您需要导入Cocoa。

代码语言:javascript
运行
复制
import Cocoa

对于iOS,您需要导入UIKit。

代码语言:javascript
运行
复制
import UIKit

您可以通过打开文件检查器(⌥⌘1)轻松发现您的游乐场平台。

票数 98
EN

Stack Overflow用户

发布于 2014-06-07 01:41:37

确切地说,达尔文就足够了。不需要导入整个Cocoa框架。

代码语言:javascript
运行
复制
import Darwin

当然,如果您需要来自Cocoa或Foundation或其他更高级别框架的元素,则可以改为导入它们

票数 77
EN

Stack Overflow用户

发布于 2016-01-24 14:14:51

对于在Linux上使用swift 2.2的人,例如Ubuntu,导入是不同的!

正确的方法是使用Glibc。这是因为在OS和iOS上,基本的类Unix的API在Darwin中,而在linux中,它们位于Glibc中。在这里,导入Foundation不会对您有所帮助,因为它本身不会造成区别。为此,您必须自己显式导入它:

代码语言:javascript
运行
复制
#if os(macOS) || os(iOS)
import Darwin
#elseif os(Linux) || CYGWIN
import Glibc
#endif

您可以关注基础框架here的开发来了解更多信息

编辑: 2018年12月26日

作为@Cœurpointed out,从swift 3.0开始,一些数学函数现在是类型本身的一部分。例如,Double现在有一个squareRoot函数。同样,ceilfloorround都可以用Double.rounded(FloatingPointRoundingRule) -> Double实现。

此外,我刚刚在Ubuntu18.04上下载并安装了最新稳定版本的swift,看起来你现在只需要导入Foundation框架就可以访问数学函数了。我尝试查找有关此问题的文档,但什么也没有找到。

代码语言:javascript
运行
复制
➜ 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
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24012511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档