【发布时间】:2019-03-13 14:43:18
【问题描述】:
我正在做一个项目,我写了这段代码dna = Math.random() > PERCENT ? dna + LETTERA : dna + LETTERB;,但我不知道它为什么会起作用。
dna 是 StringLETTERA 和 LETTERB 是 char
代码本身按我的意愿工作,问题是我不明白为什么。我认为 Java 中的字符串是不可变的,所以当我说 dna + LETTERA 时,我应该收到一个错误,但我没有。
一开始我写代码时没有使用dna + LETTERB,我使用了dna += LETTERB,但收到以下错误,Syntax error on token "+=", + expected
如果你写类似:String testStr = "test";testStr + "example";
你得到一个错误InvalidAssignmentOperator 那么有人可以向我解释为什么你可以在这样的三元运算符中添加一个字符串吗?
【问题讨论】:
-
之所以有效,是因为我写的三元运算符以
dna =开头,我很困惑为什么dna + LETTERA有效,但如果您查看整个语句,它是dna = dna + LETTERA。现在一切都说得通了。
标签: immutability operator-keyword ternary