Re: [比較] 簡單的 Java/Python/Ruby/Scala 比較。

看板PLT (程式語言與理論)作者 (痞子軍團團長)時間15年前 (2010/01/08 01:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/11 (看更多)
我不是來護航的,不過被認為是護航的也無訪 起因是因為這篇文章我看了很久都看不懂 後來問了版主大人才... (不愧是版主 XD) ※ 引述《brianhsu (墳墓)》之銘言: : =============================================================== : // This is Java. : Coord coord = new Coord (); : coord.lat = -93.0 // Souther than south! : =============================================================== : public class Coord { : public float lat; : public float lon; : public Coord () {} : public Coord (float lat, float lon) { : this.lat = lat; : this.lon = lon; : } : } : =============================================================== 如果今天比較的論點在於 Java 要自己寫一堆 getter/setter 而其他三種語言不用 那我不置可否 用 Eclipse 的 getter/setter generator 的人好像沒啥資格講話 XD : 到這邊為止,Python / Ruby / Scala 還是不算完全打敗 Java,畢竟 Java : 也才九行程式碼,Ruby 也要七行。 如果你不用符合 JavaBean 的 spec 沒有引數的 constructor 可以省略 (lat, lon 的 field 宣告部份也可以合成一行→無意義 XD) : 重點是下面了,現在我們發現原來的設計有問題,因為 lat 不能小於 -90 : 或是大於 90 ,我們要如何在不更動原有的客戶端的情況下,把這個判斷加 : 到我們的函式庫呢?Python / Ruby / Scala 都可以很輕鬆的做到。 基本上 Java 的教科書(忘記官方 coding style 有沒有這樣建議?) 都會告訴你去寫 getter/setter 來存取 field (所以這幾天在寫 GridBagLayout 的時候還頗驚訝 XD) 你不用 setter 來設定 lat 的值 然後說的好像 Java 作不到 跟抱怨「Java 裡頭不能操作指標很麻煩」的感覺差不多 只能說... 我的功力太低,實在不太懂...... Orz -- 錢鍾書: 說出來的話 http://www.psmonkey.org 比不上不說出來的話 Java 版 cookcomic 版 只影射著說不出來的話 and more...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.231.103.216
文章代碼(AID): #1BHXNS5z (PLT)
討論串 (同標題文章)
文章代碼(AID): #1BHXNS5z (PLT)