我有一个类,其中包含名称,图像,名称的虚线形式以及名称的长度。例如,我可以拥有“狗”,狗的形象,“---”,名称长度为3。
我只想为每个对象设置名称和图片,并自动设置dashName
和nameLength
。
class Answer {
var name = "name"
var image: UIImage?
var dashName = "name"
var nameLength = 0
init(){
var a = 0
nameLength = name.characters.count
while a <= nameLength {
if (name[a] == " ") {dashName[a] = " "}
else {dashName[a] = "-"}
a += 1
}
}
}
问题是错误说:“不能通过下标分配:下标是get-only”而另一个错误说:“下标不可用:不能使用Int下标String”
答案 0 :(得分:2)
编辑:倒置
for item in "${newArray[@]}"; do
printf '%s\n' "$item"
done
答案 1 :(得分:1)
String
的下标运算符是get-only,这意味着你只能使用它来读取字符串,并且必须使用其他东西来写入可变字符串。
您可以使用map
name
功能解决此问题并清理代码
Swift 4
class Answer {
var name = "name"
var image: UIImage?
var dashName = "name"
var nameLength = 0
init()
{
nameLength = name.count
dashName = name.map { $0 == " " ? " " : "-" }.joined()
}
}
Swift 3
class Answer {
var name = "name"
var image: UIImage?
var dashName = "name"
var nameLength = 0
init()
{
nameLength = name.characters.count
dashName = name.characters.map { $0 == " " ? String(" ") : String("-") }.joined()
}
}