Recherche sur le site Web

Swift readLine(), Swift print()


Dans ce didacticiel, nous verrons comment lire l'entrée standard dans Swift de l'utilisateur et les différentes façons d'imprimer la sortie sur l'écran. Swift print() est la fonction standard pour afficher une sortie à l'écran. Commençons par créer un nouveau projet d'application en ligne de commande dans XCode.

Entrée rapide

Dans Swift, la saisie standard n'est pas possible dans Playgrounds. Ni dans l'application iOS pour des raisons évidentes. L'application de ligne de commande est le moyen possible de lire les entrées de l'utilisateur. readLine() est utilisé pour lire l'entrée de l'utilisateur. Il a deux formes :

  • readLine() : La méthode par défaut.
  • readLine(strippingNewLine: Bool) : ceci est défini par défaut sur true. Swift suppose toujours que la nouvelle ligne ne fait pas partie de l'entrée

La fonction readLine() renvoie toujours une chaîne facultative par défaut. Ajoutez la ligne suivante dans votre fichier main.swift.

let str = readLine() //assume you enter your Name
print(str) //prints Optional(name)

Pour déballer l'optionnel, nous pouvons utiliser le code suivant :

if let str = readLine(){
print(str)
}

Lire un Int ou un Float

Pour lire l'entrée sous la forme d'un Int ou d'un Float, nous devons convertir la chaîne renvoyée par l'entrée en l'une d'entre elles.

if let input = readLine()
{
    if let int = Int(input)
    {
        print("Entered input is \(int) of the type:\(type(of: int))")
    }
    else{
        print("Entered input is \(input) of the type:\(type(of: input))")
    }
}

Pour Float, remplacez l’initialiseur Int par Float.

Lecture de plusieurs entrées

Le code suivant lit plusieurs entrées et vérifie également si l'une des entrées est répétée.

while let input = readLine() {
    guard input != "quit" else {
        break
    }
    
    if !inputArray.contains(input) {
        inputArray.append(input)
        print("You entered: \(input)")
    } else {
        print("Negative. \"\(input)\" already exits")
    }
    
    print()
    print("Enter a word:")
}

L'instruction guard let est utilisée pour quitter la boucle lorsqu'une chaîne particulière est entrée. print() comme d'habitude, imprime la sortie à l'écran. L'entrée actuelle est vérifiée dans le tableau, si elle n'existe pas, elle est ajoutée. Un exemple de résultat du code ci-dessus lorsqu’il est exécuté sur la ligne de commande dans Xcode est donné ci-dessous.

Entrée de lecture séparée par des espaces

Le code suivant lit les entrées sous la forme d'un tableau séparé par des espaces.

let array = readLine()?
    .split {$0 == " "}
    .map (String.init)

if let stringArray = array {
    print(stringArray)
}

La fonction split agit comme un délimiteur pour les espaces. Il divise l'entrée par espaces et mappe chacun d'eux sous forme de chaîne. Finalement, ils sont joints sous la forme d’un tableau.

Lire un tableau 2D

Le code suivant lit un tableau 2D

var arr = [[Int]]()
for _ in 0...4 {
    var aux = [Int]()

    readLine()?.split(separator: " ").map({
        if let x = Int($0) {
        aux.append(x)
        }
        else{
            print("Invalid")
        }
    })
    arr.append(aux)
}

print(arr)

Dans le code ci-dessus, nous pouvons créer 4 sous-tableaux à l’intérieur d’un tableau. Si à un moment donné nous appuyons sur Entrée sans rien saisir dans la ligne, elle sera traitée comme un sous-tableau vide.

Impression rapide()

Nous avons souvent utilisé l'instruction print() dans nos sorties standard. La fonction d'impression ressemble en réalité à ceci : L'instruction print(_:separator:terminator:) print() est suivie par défaut d'un terminateur de nouvelle ligne.

print(1...5) //// Prints "1...5"

print(1.0, 2.0, 3.0, 4.0, 5.0) //1.0 2.0 3.0 4.0 5.0

print("1","2","3", separator: ":") //1:2:3

for n in 1...5 {
    print(n, terminator: "|")
}
//prints : 1|2|3|4|5|
  • terminator s'ajoute à la fin de chaque instruction d'impression.
  • Un séparateur ajoute entre les valeurs de sortie.

Concaténation d'une chaîne avec des valeurs Nous utilisons \(value_goes_here) pour ajouter des valeurs à l'intérieur d'une chaîne.

var value = 10
print("Value is \(value)") // Value is 10

Ceci met fin à ce didacticiel sur les entrées et sorties standard Swift.

Articles connexes: