Где я могу найти "математику, строки и т.д." Библиотеки для Swift?

Я смотрю документацию Swift, но не могу найти ссылку на то, что там на других языках...

Примеры: sin(), cos(), abs() для math, uppercase(), lowercase() для строк, sort(), pop(), push() для массивов и т.д.

Для строк я нашел это в документах:

Swifts Строковый тип легко соединяется с Foundations NSString класс. Если вы работаете с базой Foundation в Cocoa или Cocoa Нажмите, весь API NSString доступен для вызова любого Строковое значение, которое вы создаете, в дополнение к описанным выше функциям String в этой главе. Вы также можете использовать значение String с любым API, который требуется экземпляр NSString.

Не могли бы вы указать мне какой-нибудь документ или где я могу найти перечисленные функции?

Ответ 1

Похоже, это работает...

import Foundation
var theCosOfZero: Double = Double(cos(0))  // theCosOfZero equals 1

Ответ 2

sin(), cos(), abs() - это методы C, определенные в math.h https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man3/math.3.html

"str".uppercaseString() и "str".lowercaseString() - методы NSString.

sort() является частью стандартной библиотеки Swift, задокументированной на https://developer.apple.com/documentation/swift/array/1688499-sort

Array.append() и Array.removeLast() также определены в стандартной библиотеке Swift, задокументированной на https://developer.apple.com/documentation/swift/array

Ответ 3

Математические функции определены в модуле Дарвин, так что вы можете добавить абсолютный минимум:

import Darwin

В большинстве случаев достаточно import Foundation или import Cocoa, так как эти модули импортируют модуль Darwin. Если вам нужен доступ к константам типа M_PI или аналогичным, перейдите с помощью cmd + к модулю Darwin и к Darwin.C. Здесь вы можете найти импорт C API и Darwin.C.math среди них. Таким образом, вы можете проверить, что доступно, уже преобразованное в Swift. Тем не менее, все, что C API доступно с import Darwin.

Вы не можете выпустить import Darwin.C.math напрямую, потому что вы увидите следующую ошибку времени выполнения (или аналогичную, если вы не находитесь на игровой площадке):

Playground execution failed: Error in auto-import:
failed to get module 'math' from AST context

Пример кода детской площадки:

import Darwin

func degToRad(degrees: Double) -> Double {
    // M_PI is defined in Darwin.C.math
    return M_PI * 2.0 * degrees / 360.0
}

for deg in 0..<360 {
    sin(degToRad(Double(deg)))
}