Tut Swift init(Anzahl:, repeatedValue:) Arbeit?
Getestet, die aus dem Referenz: https://developer.apple.com/documentation/swift
var string = String(count: 5, repeatedValue: "a")
// string is "aaaaa"
Bekam ich diese Fehlermeldung:
Spielplatz execution failed: error: :5:14: Fehler: konnte nicht finden, eine überlastung für 'init', akzeptiert die angegebenen Argumente verwendet werden
var string = String(count: 5, repeatedValue: "a")
Tut dies tatsächlich funktionieren?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es, dass Sie explizit übergeben, ein Zeichen geben, um zu funktionieren. Dies funktioniert für mich.
Obwohl, kann es Fehler gemischt mit alle diese als gut. Ich glaube, dass die Art und Weise Sie dies getan haben, sollten gearbeitet haben, auf seine eigene. Und ich kann nicht scheinen, um die code-Vervollständigung auf dieser Initialisierer an alle.
Edit: ich werde mit dem bug. Die folgenden kompiliert einwandfrei.
Zum nutzen künftiger Forscher: da der Swift 3, verwenden Sie
init(repeating:count:)
.Das funktioniert gut :
Für alle, swift 3.x seinen jetzt etwas diesem dies funktioniert wie ein Charme.
Ich weiß, das ist eine alte Frage und hat bereits eine Antwort. Aber ich glaube, ich weiß, warum
String(count: 5, repeatedValue: "a")
funktioniert nicht.Die Sache ist
String
hat zwei ähnlich aussehende initialisers:So, in diesem Fall der compiler kann nicht feststellen, ob ein literal ist eine
Character
oderUnicodeScalar
daher compile-Zeit Fehler, wenn Sie sich nicht über expliziteCharacter
. Um zu bestätigen, dass"a"
interpretiert werden kann, wieUnicodeScalar
Sie können überprüfen, dass diese Zeile kompiliert:Swift 3:
Ausgabe: [0, 0, 0, 0, 0]