Date operateur +=
xyloweb
Membre
Bonjour à tous,
Comment utiliser l'opérateur += sur une variable de type Date ?
var now: Date = Date()
now += ...
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
now.addingTimeInterval(...)
Tu peux aussi faire :
Merci pour vos réponses.
En fait j'avais oublié de préciser la version de Swift
Et justement dans la version 3 à priori la function += est bien implémentée, donc il suffit de comprendre la signification des attributs (left: inout Date et right: TimeInterval) … que je n'avais pas compris…
Au passage, remarquez le typage de la variable oneDay… (et oui Swift est un language fortement typé)
Venant d'Objective-C je me mets à Swift alors il va falloir être indulgent ;-) je vais sans doute poser des questions un peu futiles…
Il n’y a jamais de questions futiles quand on apprend.
Pour aller dans le sens de Joanna, une des
killer feature
de Swift est la possibilité de créer son propre opérateur (s'il n'existe pas déjà, autrement il faut l'override):Voici un exemple de custom operator:
Une des choses remarquable est que vous pouvez additionner deux
Carotte
s et retourner uneSalade
, vous pouvez additionner un tableau deCourgette
et uneAubergine
pour finalement retourner un objetRatatouille
. Ce n'est pas spécialement conseillé car les opérateurs doivent être limpide et sans doute d'interprétation, mais j'ai trouvé ça incroyable quand je l'ai appris.La partie custom operator de la doc ainsi que de ces articles m'avaient bien aidé:
http://nshipster.com/swift-operators/
https://medium.com/@johnsundell/custom-operators-in-swift-284837290f43
@Mayerick Si tu veux fournir un opérateur composé comme
+=
, c'est entendu que la fonction ne devrait pas renvoyer une valeur. Par contre, il faut mettre le premier paramètre commeinout
parce que c'est attendu que le var (à gauche de l'opérateur) soit affecté par l'opération.@Joanna Carter toutes mes excuses, il va de soit que tu as raison. J'ai ajouté l'exemple du
+=
mais il n'est pas tiré de mon code contrairement au∆
et je n'ai pas fait attention. Le but était de montrer que tout est possible avec ces opérateurs, mais j'aurais en effet dû tiquer sur le+=
. Un grand merci pour cette précision