Re: [問題] 對java的一些疑問...
※ 引述《adrianshum (Alien)》之銘言:
: : 3. java不支援operator overloading, 但string的"+", 卻又很特殊...
: : (相比C++, 其實我覺得有些不自然... XD)
: 這個好像沒有人說清楚。
: Java 不是不支援operator overloading, 只是
: 不支援 "自訂operator overloading".
: String 的 + 和 += 就是暫時有的唯二 operator overloading
: (記得好像說 JDK7 還會再加 BigDecimal/BigInteger 的
: operator overloading?)
通常講一個語言支不支援 operator overloading 應該就是指能否 customize
operator。
否則,照你的方式來看,是否只要下列兩個 expression 在一個程式語言裡皆是
legal,就可以宣稱是支援 operator overloading?
1 + 2
1.0 + 2.0
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.130.172
推
03/01 00:29, , 1F
03/01 00:29, 1F
→
03/01 00:32, , 2F
03/01 00:32, 2F
→
03/01 00:35, , 3F
03/01 00:35, 3F
→
03/01 00:36, , 4F
03/01 00:36, 4F
→
03/01 00:36, , 5F
03/01 00:36, 5F
也許我換個講法能夠更清楚表達我的意思。
通常稱一個程式語言(PL)支援 operator overloading 是指:該 PL 的 user
可以 overload PL 內建的 operator。
既然 Java PL spec 已經規範了 operator + 作用在 String reference(value)
的部份(屬於內建的 operator),就不能拿來說明 Java PL 是支援 operator
overloading。否則只要拿 1 + 2 與 1.0 + 2.0 此二 expression 的 + 在 Java
program 中實際是兩個不同的操作,就可以"宣稱" Java PL 支援 operator
overloading。
※ 編輯: sbrhsieh 來自: 218.173.128.235 (03/01 01:02)
→
03/01 01:08, , 6F
03/01 01:08, 6F
→
03/01 01:10, , 7F
03/01 01:10, 7F
→
03/01 01:19, , 8F
03/01 01:19, 8F
推
03/01 01:38, , 9F
03/01 01:38, 9F
推
03/01 11:05, , 10F
03/01 11:05, 10F
討論串 (同標題文章)