底下的Java程式碼會有什麼結果?
1 2 3 4 5 6 7 | public class Abc { public static void main(String[] args) { String letters = "ABC"; char[] numbers = { '1', '2', '3' }; System.out.println(letters + " easy as " + numbers); } } |
使用JDK11.0.2的結果為 ABC easy as [C@5c8da962 。這是因為 numbers 是 ,而字元陣列會呼叫Object的toString(),但我們沒有將toString() method 給 Overwrite,於是會得到一組Hash code的數值。
那我們來看看在Python裡,會有什麼結果?
1 2 3 | letters = "ABC" numbers = { '1', '2', '3' } print(letters + " easy as " + numbers) |
上述的程式碼會得到下面的錯誤訊息:
1 2 | print(letters + " easy as " + numbers) TypeError: can only concatenate str (not "set") to str |
這是因為在 Python 裡,{ '1', '2', '3' } 會是集合(set)的語法。而且因為 letters 是str,所以 + 會被當成字串合併來執行。
沒有留言:
張貼留言