Ce que j'essaie de faire est d'écrire une fonction générique qui compresse l'image.Une fonction Swift peut-elle accepter uniquement une plage de valeurs?
func compress(image: UIImage, withRatio ratio: CGFloat) -> Data? {
return UIImageJPEGRepresentation(image, ratio)
}
Mais ici ratio
du compress()
peut être une valeur CGFloat
0...∞
, mais je veux seulement accepter 0.0...1.0
. Y-a-t-il un moyen de faire ça?
vous voulez un Range' Swift 'comme paramètre ou souhaitez-vous transmettre les valeurs de début/fin dans un paramètre de tableau (par exemple comme ce que l'on peut faire en créant des dégradés)? –
NON, vous ne pouvez pas représenter une telle contrainte dans le système de types actuel de Swift. Vous pouvez simplement mettre un contrôle d'exécution en utilisant 'assert' ou des fonctions similaires. – OOPer
vous pouvez utiliser 'precondition (0.0 ... 1.0 ~ = ratio)' –