Pour les personnes utilisant swift [2.2] sous Linux, c'est-à-dire Ubuntu, l'importation est différente !
La bonne façon de procéder est d'utiliser la Glibc. En effet, sous OS X et iOS, les API de base de type Unix se trouvent dans Darwin, alors que sous Linux, elles se trouvent dans Glibc. L'importation de Foundation ne vous aidera pas ici car elle ne fait pas la distinction par elle-même. Pour ce faire, vous devez l'importer explicitement vous-même :
#if os(macOS) || os(iOS)
import Darwin
#elseif os(Linux) || CYGWIN
import Glibc
#endif
Vous pouvez suivre le développement du cadre de la Fondation aquí pour en savoir plus
EDIT : 26 décembre 2018
Comme a souligné par @Cœur À partir de swift 3.0, certaines fonctions mathématiques font désormais partie des types eux-mêmes. Par exemple, Double a maintenant un squareRoot fonction. De même, ceil
, floor
, round
peuvent tous être réalisés avec Double.rounded(FloatingPointRoundingRule) -> Double
.
De plus, je viens de télécharger et d'installer la dernière version stable de swift sur Ubuntu 18.04, et cela ressemble à ceci Foundation
est tout ce que vous devez importer pour avoir accès aux fonctions mathématiques maintenant. J'ai essayé de trouver de la documentation à ce sujet, mais je n'ai rien trouvé.
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
0 votes
Si vous obtenez le
Ambiguous reference to x
Vérifiez cette réponse : stackoverflow.com/a/34357943/1359306