Swift-3-

Type String & Tuple
Retour vers: Type simple

L’objectif de cet article est de donner un aperçu rapide des types String et Tuple. Une description plus approfondie sera abordée dans un prochain article.

String

Une chaîne de caractères est une suite ordonnée de caractères alphabétiques ou non qui forme du texte que l’on peut retenir sous forme de variable ou constante en mémoire. Une chaîne de caratères dans Swift est représentée par le type String conforme à la norme Unicode. Depuis la version Swift 2, une chaine de caractères de type String n’est plus considérée comme une Collection contenant une ensemble de valeurs de type Character à la manière d’un vecteur ( array en Swift). Pour déclarer une variable de type String on indique une suite de chiffre ou de lettres entourées par des guillemets ( » « ).

 let Nom  = "Steve Jobs" // Déclaration implicite du type String
 let Apple: String = "La société à la pomme"

Les chaînes de caractères peuvent inclure les caractères spéciaux suivants :

  • \0 nul
  • \\ antislash
  • \t tabulation horizontale
  • \n saut de ligne
  • \r retour en début de ligne
  • \ » guillemet
  • \’ apostrophe
  • chiffres hexadécimaux codés en deux,quatre, huit octets .
let signeDollar = "\x24" // scalaire Unicode  (U+0024)
Concaténation de chaînes
// Insertion : Noter la syntaxe "...\(la chaine) ... "
var nom = " John "
var ville = " Paris "
var numero = 17
var rue = " Boulevard Raspail "
var adresse = " \(nom) habite \(ville) au numero \(numero) du \(rue) "
var adresse2 = nom + " habite " + ville + " au numero \(numero)" + " du " + rue
var panierDeFruits = "Pommes"
panierDeFruits += " et Poires" // panierDeFruits devient "Pommes et Poires"
let inscription = "Sens Interdit"
inscription += " sauf le Lundi" // une constante ne peut pas être modifiée
Initialisation d’une chaine de caractères vide
var ville = ""
var village  = String()
Conversion

Pour convertir une valeur numérique dans le type String on utilise la technique du « type casting »,
car la conversion n’est pas implicite.

let description = "le Prix est "
let prix = 94
let étiquette = description + String(prix)

 

Tuple

Les Tuples servent à regrouper de nombreuses valeurs en un seule variable. Les valeurs d’une variable de type tuple peuvent être de n’importe quel type . Le tuple (404, « Page non trouvée ») regroupe un entier et une chaine de caractères pour produire un code d’erreur HTTP composé de deux valeurs : un nombre et une description. On dit que le type du tuple est (Int, String).

let erreur404Http = (404, "Page non trouvée")

 

Création d’un tuple

let pasDePage = (404," Cette page n’existe pas ")
print ("voici le resultat : \(pasDePage)")

 

On peut décomposer le contenu d’un tuple comme suit:

let (codeErreur, messageErreur) = erreur404Http
print ("Le code d'erreur est \(codeErreur)")        
// Affiche "Le code d'erreur est 404"
print ("Le message d'erreur est \(messageErreur)")  
// Affiche "Le message d'erreur est Page non trouvée"

let (code, msg) = pasDePage
print ("le code  est \(code)")
print ("le message   est \(msg)")

 

Extraction sans nommage, pour récupérer une partie des valeurs d’un tuple, on utilise un « underscore »

let (justeCodeErreur, _) = erreur404Http
print ("Le code d'erreur est \(justeCodeErreur)")  
// Affiche "Le code d'erreur est 404" 
print ("le code  est \(pasDePAge.0) ")
print ("le message  est \(pasDePAge.1) ")

 

Pour accéder à la valeur d’un élément individuellement en utilisant son index (commençant à zéro) :

print ("Le code d'erreur est \(erreur404Http.0)")       
// Affiche "Le code d'erreur est 404"
print ("Le message d'erreur est \(erreur404Http.1)") 
// Affiche "Le message d'erreur est 404"

 

On peut nommer chacun des éléments d’un tuple de façon individuelle :

let erreur200Http = (codeErreur: 200, messageErreur: "OK")
let pasDePage1 = (code : 404, description : "Cette page n’existe pas")
println ("le code  est \(pasDePage1.code) ")
println ("le code  est \(pasDePage1.description) ")

 

Autre façon de nommer en utilisant le nom de l’élément

println("Le code d'erreur est \(erreur200Http.codeErreur)")                
// Affiche "Le code d'erreur est 200"
println("Le message d'erreur est \(erreur200Http.messageErreur)")   
// Affiche "Le message d'erreur est OK"

 

On verra lors de l’étude des fonctions l’intérêt des tuples
Note : Les tuples sont utiles pour stocker temporairement un groupe de valeurs. Ils ne servent pas à créer des structures de données complexes.