java annotation 的二三事 第一次看這隻小老鼠 在 java 裡面常常會看見下面這樣的用法 @Override void method() { } 上面有個小老鼠的 @Override 便是 annotation 。 這個 @Override 的作用是開發者繼承某個 class 之後,想要覆寫父類別的時候加上這個 annotation 可以讓編譯器知道你想覆寫,因此編譯器會檢查父類別是否有相同的 method ,以免你原本想要覆寫父類別的 method 結果卻手殘打錯字沒有真的覆寫到而發生意外。 因此 annotation 的作用就是讓被 annotation 標籤上的 class, method 之類的東西額外的增加資訊。 再看小老鼠
python 關於 python 中的 self 在 python 物件方法中,如果存取一個 class 或者 instance 中的變數, 那麼在物件方法宣告參數時,就必須要有一個 self 當作第一個參數。 大約長得像下面這樣: class Person: def __init__(self, name, age): self.name = name self.age = age 看到這個例子中的 self 其實與其他語言如: java, c++ 中的 this
lambda lambda 與邱奇數 lambda 這幾天研究了一下 lambda 之後,發現 lambda 根本不只是匿名的函數這麼簡單而已。在很早之前邱奇就很想用數學表達世界上所有的事情。而當中為為了設計一套方法來判斷什麼樣的東西是可以拿來被計算的,lambda 就被獨立出來發展了。 而 lambda 運算其實包含的元素其實很簡單,只有包含兩個東西,就是變數跟函數而已。 先講一下如何表示一個 lambda 表達式 ( lambda term ),接著舉幾個例子就能很快看懂這套數學系統了。 lambda 表達式的規則(以下用 t 來代表 lambda 表達式,變數用 x 來代表): x
python python 的 iterator for 迴圈跟 iterator (可走訪物件、迭代器) 很多人在初學 python 的時候,都會搞不懂 for 迴圈到底是在做些什麼 初學 python 應該會看到這樣的 for 迴圈 for i in range(10): print(i) i 從 0 遞增到 9,然後每遞增一次,就執行 print(i) 。 那為什麼我們會搞不清楚
php Ruby, Python, NodeJS, PHP 小看法 最近在 Codecademy 把 Ruby 這個我沒學過的語言給跑了一遍,之前我是覺得這語言有點醜啦,但深入了解一下之後,我發現是有他的哲學存在的。 所以我現在想稍微比較一下我碰過的語言,比較一下社群的生態 Ruby 先拿 Ruby 來聊聊,因為才正剛好跑完一趟他的教學。一開始我看到 Ruby 的 Block 是用 end 結束,我就聯想到 Pascal 這個號稱當代最美的程式語言。 Pascal 真的很美,也幾乎都做得很好,但是美中不足的就是 begin - end 來當作程式的
python 從 Python 樂透小程式看美感 因為最近有需要個類似樂透電腦選號的功能,需要取六個亂數就是了。 當我完成這個小的程式之後,我深深的覺得 python 是個非常具有美感的語言 choiced = [] # 選到的號碼 for i in range(6): choiced.append(random.choice([x for x in range(1, 50) if x not in choiced])) 這已經是我拆出來最重要的三行程式碼了,不過當中最重要的是以下這一段 choiced.append(
python 小試 Python GUI, 以心理測驗計數練習 Python 真的是一個很棒的語言,不但語言的理念是簡單而已,還有許多好用的 library 可以用,當中官方提供的 library 已經很夠用了,而 GUI 介面是使用 Tcl/Tk 去整合。 Tcl/Tk 本來就是自成一格的腳本語言,不過 Python 肯定是發現 Tcl 是很容易做到快速開發的腳本語言,可能也是因為 Tcl 是用純命令的概念的腳本語言啦!最後 Python 把 Tcl 整合成自己的模組,也非常的 Python-like