Математические функции в Swift

Я просматривал документацию, но не мог найти ответа.

Как использовать математические функции, такие как sqrt(), floor(), round(), sin() и т.д.


enter image description here

Ответ 1

Как уже отмечалось, у вас есть несколько вариантов. Если вам нужны только математические функции. Вы можете импортировать только Дарвин.

import Darwin

Если вам нужны математические функции и другие стандартные классы и функции. Вы можете импортировать Foundation.

import Foundation

Если вам нужны все, а также классы для пользовательского интерфейса, это зависит от вашей игровой площадки для OS X или iOS.

Для OS X вам потребуется импортировать Cocoa.

import Cocoa

Для iOS вам нужно импортировать UIKit.

import UIKit

Вы можете легко открыть свою игровую площадку, открыв File Inspector (⌥⌘1).

Playground Settings - Platform

Ответ 2

Чтобы быть точным, Дарвина достаточно. Нет необходимости импортировать всю инфраструктуру Cocoa.

import Darwin

Конечно, если вам нужны элементы из Cocoa или Foundation или другие рамки более высокого уровня, вы можете импортировать их вместо этого

Ответ 3

Для пользователей, использующих swift [2.2] для Linux, то есть Ubuntu, импорт отличается!

Правильный способ сделать это - использовать Glibc. Это связано с тем, что в OS X и iOS базовый Unix-подобный API находится в Дарвине, но в Linux они расположены в Glibc. Импортный фонд вам не поможет, потому что он не делает различия отдельно. Чтобы сделать это, вы должны явно импортировать его самостоятельно:

#if os(OSX) || os(iOS)
import Darwin
#elseif os(Linux)
import Glibc
#endif

Вы можете следить за развитием фреймворка здесь, чтобы узнать больше

Ответ 4

Вы можете использовать их прямо в строке:

var square = 9.4
var floored = floor(square)
var root = sqrt(floored)

println("Starting with \(square), we rounded down to \(floored), then took the square root to end up with \(root)")

Ответ 5

Чтобы использовать математические функции, вы должны import Cocoa

Вы можете увидеть другие определенные математические функции следующим образом. Создайте Cmd-Click имя функции sqrt, и вы введете файл со всеми другими глобальными математическими функциями и константами.

Небольшой фрагмент файла

...
func pow(_: CDouble, _: CDouble) -> CDouble

func sqrtf(_: CFloat) -> CFloat
func sqrt(_: CDouble) -> CDouble

func erff(_: CFloat) -> CFloat
...
var M_LN10: CDouble { get } /* loge(10)       */
var M_PI: CDouble { get } /* pi             */
var M_PI_2: CDouble { get } /* pi/2           */
var M_SQRT2: CDouble { get } /* sqrt(2)        */
...