我錯過了什么?
賦值表達式的結果就是被賦值的值。:-) 所以在該代碼中,調用的結果createRowMap被分配給rowMap 并作為rowMap函數的結果返回。就像:
a = b = 42;
...設置b為42然后設置a為42(b = 42賦值的結果)。
效果就像代碼是這樣寫的一樣:
public Map<R, Map<C, V>> rowMap() {
Map<R, Map<C, V>> result = rowMap;
if (result != null) {
return result;
}
rowMap = createRowMap();
return rowMap;
}