ide*_*xer 3 arrays scala append
val tagsArray = tags.split(",")
var trimmedTagsArray: Array[String] = Array()
for(tag <- tagsArray) {
trimmedTagsArray :+ tag.trim
}
Run Code Online (Sandbox Code Playgroud)
trimmedTagsArray之后是空的,即使tagsArray包含元素,即使我省略了trim调用.
我在这里错过了什么?
小智 5
您需要了解:+运算符.而不是修改现有的trimmedTagsArray变量,而不是:+实际上返回一个新数组,并在结尾附加表达式"tag.trim"的结果.由于您既不会返回此结果,也不会将其分配到任何位置,因此会丢弃此值.
我相信你真正想要的是用以下内容替换你的理解线.
trimmedTagArray = trimmedTagArray:+ tag.trim
虽然这将实现您想要的目标,但到目前为止它并不是最佳解决方案.相反,尝试以下......
val trimmedTagsArray = for(tag <- tagsArray) yield {
tag.trim
}
Run Code Online (Sandbox Code Playgroud)
上面将创建一个val(在Scala over var中首选),它具有所需的值,同时避免可变状态.