Python Puzzler 12: ABC
底下的Java程式碼會有什麼結果?
使用JDK11.0.2的結果為 ABC easy as [C@5c8da962 。這是因為 numbers 是 ,而字元陣列會呼叫Object的toString(),但我們沒有將toString() method 給 Overwrite,於是會得到一組Hash code的數值。
那我們來看看在Python裡,會有什麼結果?
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,所以 + 會被當成字串合併來執行。
若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。
If you like this post, please click the ads on the blog or buy me a coffee. Thank you very much.
留言