2015-02-17 1188 views
-1

我在scala中有一部分代码,它现在正在抛出错误。错误消息说重新分配给val。下面的代码片段:行word = word.trim()在scala中使用trim关键字

private def tokenize(line: String) { 
    val words = line.split("\\s+") 
    for (word <- words) { 
     if (word == null) //continue 
     word = word.trim() 
     if (word.length == 0) //continue 
     if (word == "WRITEINT") { 
     addLast(new Token(TokenType.WRITEINT, word)) 

,但此错误apprears如何摆脱这种错误的?

+1

'斯卡拉val's是不可改变的。你只能给他们分配一次。如果你想要可变状态,你可以使用'var'。然而,无论如何避免可变状态通常是一个好主意,所以你可能想重新考虑你的代码。 – toniedzwiedz 2015-02-17 23:19:48

+1

很多那些'if's是不必要的。 – 2015-02-18 00:45:36

回答

1

因为wordval,因此无法重新分配给其他值。

您可以采用不同命名:

val trimmed = word.trim() 
if (trimmed.length == 0) 
// ...