6 ответов:
как и другие отметили, у вас есть несколько вариантов. Если вы хотите только математические функции. Вы можете импортировать только Дарвина.
import Darwinесли вы хотите, математические функции и другие стандартные классы и функции. Вы можете импортировать Фонд.
import Foundationесли вы хотите все, а также классы для пользовательского интерфейса, это зависит, если ваша игровая площадка для OS X или iOS.
для OS X, вам нужно импортировать какао.
import Cocoaдля iOS, вам нужно импортировать Базе UIKit.
import UIKitвы можете легко обнаружить свою игровую площадку, открыв инспектор файлов (⌥ ⌘1).
чтобы быть совершенно точным, достаточно Дарвина. Нет необходимости импортировать всю структуру какао.
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