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



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



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





enter image description here

1183   6  

6 ответов:

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

import Darwin

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

import Foundation

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

для OS X, вам нужно импортировать какао.

import Cocoa

для iOS, вам нужно импортировать Базе UIKit.

import UIKit

вы можете легко обнаружить свою игровую площадку, открыв инспектор файлов (⌥ ⌘1).

Playground Settings - Platform

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

import Darwin

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

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

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

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

вы можете следить за развитием основы здесь узнать больше

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

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)")

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

вы можете увидеть другие определенные математические функции следующим образом. Сделайте Cmd-нажмите на имя функции 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)        */
...

для быстрого способа делать вещи, вы можете попробовать и использовать инструменты, доступные в стандартной библиотеке Swift. Они должны работать на любой платформе, которая может работать быстро.

вместо floor(),round() и остальные процедуры округления вы можете использовать rounded(_:):

let x = 6.5

// Equivalent to the C 'round' function:
print(x.rounded(.toNearestOrAwayFromZero))
// Prints "7.0"

// Equivalent to the C 'trunc' function:
print(x.rounded(.towardZero))
// Prints "6.0"

// Equivalent to the C 'ceil' function:
print(x.rounded(.up))
// Prints "7.0"

// Equivalent to the C 'floor' function:
print(x.rounded(.down))
// Prints "6.0"

они в настоящее время доступны на Float и Double и это должно быть достаточно легко конвертировать в CGFloat например.

вместо sqrt() там squareRoot() способ по протоколу с плавающей запятой. Опять же, оба Float и Double соответствуют FloatingPoint протокол:

let x = 4.0
let y = x.squareRoot()

для тригонометрических функций стандартная библиотека не может помочь, поэтому вам лучше всего импортировать Darwin на платформах Apple или Glibc в Linux. Скрестив пальцы, они будут аккуратнее в будущем.

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

let x = 1.571
print(sin(x))
// Prints "~1.0"

Comments

    Ничего не найдено.