Comment renvoyer 3 valeurs de données distinctes du même type (Int) à partir d'une fonction dans Swift?
J'essaie de renvoyer l'heure, je dois renvoyer les heures, les minutes et les secondes sous forme d'entiers séparés, mais tout en un à partir de la même fonction, est-ce possible?
Je pense que je ne comprends tout simplement pas la syntaxe pour renvoyer plusieurs valeurs. C'est le code que j'utilise, j'ai des problèmes avec la dernière ligne (de retour).
Toute aide serait grandement appréciée!
func getTime() -> Int
{
let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitSecond, fromDate: date)
let hour = components.hour
let minute = components.minute
let second = components.second
let times:String = ("\(hour):\(minute):\(second)")
return hour, minute, second
}
Réponses:
Renvoie un tuple:
Ensuite, il est appelé comme suit:
ou:
la source
Aussi:
Ensuite, il est appelé comme suit:
C'est la manière standard de l'utiliser dans le livre The Swift Programming Language écrit par Apple.
ou juste comme:
c'est la même chose mais moins clairement.
la source
the right answer can't compile right in swift 2.0
: faux, renvoyer un tuple sans nom dans Swift 2 fonctionne de la même manière qu'avec Swift 1. Voir cette capture d'écran .time.hour
ne fonctionnera plus. Veuillez mettre à jour le code.vous devez retourner trois valeurs différentes de cette méthode et obtenir ces trois dans une seule variable comme celle-ci.
obtenir la valeur en une seule variable
maintenant, vous pouvez accéder aux heures, minutes et secondes simplement par "." c'est à dire.
la source
Swift 3
Utiliser :
la source
Mettre à jour Swift 4.1
Ici, nous créons une structure pour implémenter l'utilisation de Tuple et valider la longueur du texte OTP. Cela doit être de 2 champs pour cet exemple.
Usage:
J'espère que ça aide!
Merci
la source
la source