tags: Java Preconditions guava-libraries 教學
【Guava 教學】(2)命名明確的條件檢查
By caterpillar | 2013/06/13有多少次了呢?你總會對傳入的引數作一些檢查,像是某個管理物件的容器,你也許會有個 add
方法,可將傳入的 List
中元素逐一收納,你不希望傳入 null
,或者傳入的 List
是空的…
tags: Java Lambda Closure Scala Type inference
認識 Lambda/Closure(4)從 Scala 中借鏡
By caterpillar | 2013/06/11在步入靜態語言的世界時,我們都知道編譯器需要型態訊息,以便在編譯時期檢查出各種可能的型態不符之錯誤。這點很有助益,因為可以在撰寫程式的一開始就捕捉到一些錯誤,降低因錯誤而帶來的成本負擔。不過在討論到程式碼的簡潔度時,靜態語言中冗長的型態宣告常是令人詬病的對象。
tags: null Optional guava-libraries 教學
【Guava 教學】(1)從避免使用 null 開始
By caterpillar | 2013/06/06大多數開發者對 Guava 的認識,是從其中對Java 標準 API 中 Java Collections 框架功能的增強或補充,那是 guava-libraries 中的一部份,也就是 Guava Collections,在這部份,Java Collections 框架作者 Joshua Bloch 也曾對其提出相關建議。然而 guava-libraries 不僅僅是 Collections 的功能加強版,它還包括了許多進階特性,甚至有不少設計是借鏡了函數式程式設計的概念,像是不可變動結構、避免 null 等,對不少 Java 傳統開發者而言,這些概念都是新穎而陌生的,也因此無法對其作更進一步的善用。
認識 Lambda/Closure(3)Python 對 Lambda/Closure 的支援
By caterpillar | 2013/06/04到目前為止你可以看到,如果函式是物件,那麼就可以: 被任何變數參考。 不只是被動地被呼叫,還可以主動地傳入函式中,取代某個可重用流程模版中的演算法。 建立 Closure 捕捉閒置變數(Free variable)並從函式中傳回。