characters string swift swift-playground

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]