Недавно я начал изучать swift с помощью онлайн-курса.
Мне было дано задание на создание пароля из заданного массива, содержащего символы. Мы выучили в основном два примера кода, чтобы случайным образом выбрать один.
variable[Int.random(in: 0...25)]
variable.randomElement()
Оба работают очень хорошо, когда вытаскивают одинэлемент из массива, но только «variable[Int.random(in: 0...25)
» при многократном объединении с плюсом (+).
Почему это так?
Я посмотрел документацию, но не смогt найти ответ
https://developer.apple.com/documentation/swift/array/2994747-randomelement
Объяснение:
Этот код работает:
let alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
//The number of letters in alphabet equals 26
var password = alphabet[Int.random(in: 0...25)] + alphabet[Int.random(in: 0...25)] + alphabet[Int.random(in: 0...25)] + alphabet[Int.random(in: 0...25)] + alphabet[Int.random(in: 0...25)] + alphabet[Int.random(in: 0...25)]
print(password)
Этокод не работает, потому что randomElement () становится серым после объединения нескольких с плюсом (почему?)
let alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
//The number of letters in alphabet equals 26
var password = alphabet.randomElement() + alphabet.randomElement() + alphabet.randomElement() + alphabet.randomElement() + alphabet.randomElement() + alphabet.randomElement()
print(password)
Редактировать: Спасибо за быстрое объяснение, ребята!