string - characters - ¿Swift init(count:, repeatValue:) funciona?
swift 4 string append (6)
Probado esto de la referencia: https://developer.apple.com/documentation/swift
var string = String(count: 5, repeatedValue: "a")
// string is "aaaaa"
Tengo este error
La ejecución del patio de juego falló: error:: 5: 14: error: no se pudo encontrar una sobrecarga para ''init'' que acepte los argumentos proporcionados var cadena = Cadena (cuenta: 5, repetida Valor: "a")
¿Esto realmente funciona?
Esto funciona bien
var str9 = String(count: 5,repeatedValue: Character("c"))
Para cualquier persona en Swift 3.x ahora es algo como esto, esto funcionará a la perfección.
var string = String(repeating: "a", count: 5)
Para el beneficio de los futuros buscadores: a partir de Swift 3, use init(repeating:count:)
.
Parece que tienes que pasarle explícitamente un tipo de carácter para que funcione. Esto funciona para mí.
let char = Character("a")
let string = String(count: 5, repeatedValue: char)
Aunque, puede haber errores mezclados con todo esto también. Creo que la forma en que estabas haciendo esto debería haber funcionado por sí misma. Y parece que no puedo completar el código en este inicializador en absoluto.
Edit: Voy con un error. Lo siguiente compila bien.
let array = Array(count: 5, repeatedValue: "a")
Sé que esta es una pregunta antigua y ya tiene una respuesta. Sin embargo, creo que sé por qué String(count: 5, repeatedValue: "a")
no funciona.
La cosa es que String
tiene dos initialisers aspecto similar:
init(count: Int, repeatedValue: Character)
init(count: Int, repeatedValue: UnicodeScalar)
Entonces, en este caso, el compilador no puede saber si un literal es un Character
o UnicodeScalar
, por lo tanto, compile el error de tiempo si no pasa un Character
explícito. Para confirmar que "a"
puede interpretarse como UnicodeScalar
, puede verificar que esta línea se compile:
let a: UnicodeScalar = "a"
Swift 3:
var array = Array(repeating: 0, count: 5)
Salida: [0, 0, 0, 0, 0]