Lambda表示式入門--函數語言程式設計與函式式介面
一,函數語言程式設計:
- 函數語言程式設計是基於函式式介面並使用lambda表達的程式設計方式
- 函數語言程式設計理念是將程式碼作為可重用資料代入到程式執行中(以前傳統物件導向開發時都是一些比如人名,編號之類的一些具體資訊。函數語言程式設計的核心是將已經準備好的程式碼作為可重用資源參與程式執行過程中,通過傳入不同程式碼塊展現出不同的行為)
- 函數語言程式設計強調“你想做什麼”,而不是“你想怎麼做”
二,函式式介面:
- 函式式介面:介面中有且只有一個抽象方法的介面
- java中擁有大量函式式介面,比如java.lang.Runnable
- jdk8後提供了一系列新的函式式介面,位於java.util.function
三,函式式介面Predicate
- predicate是新增的函式式介面,位於java.util.function
- predicate用於測試傳入的資料是否滿足判斷要求,類似於if,滿足條件返回true,反之返回false
- predicate介面需要實現test()方法進行邏輯判斷
public static void main(String[] args) {
// 求小於4的數
Predicate<Integer> predicate = n -> n < 4;
System.out.println(predicate.test(12));
}
public class PredicateSample {
public static void filter(List<Integer> list, Predicate<Integer> predicate) {
for (Integer i : list) {
if (predicate.test(i)) {
System.out.print(i + " ");
}
}
System.out.println();
}
public static void main(String[] args) {
// 求奇數
List<Integer> lists = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);
filter(lists, n -> n % 2 == 1);
// 求大於4的偶數
filter(lists, n -> n % 2 == 0 && n > 4);
}
}
相關文章
- 函數語言程式設計:Lambda 表示式函數程式設計
- Java 函數語言程式設計(二)Lambda表示式Java函數程式設計
- Java中的函數語言程式設計(三)lambda表示式Java函數程式設計
- Python函式與lambda 表示式(匿名函式)Python函式
- Java中的函數語言程式設計(二)函式式介面Functional InterfaceJava函數程式設計函式Function
- 瞭解 JavaScript 函數語言程式設計 - 宣告式函式JavaScript函數程式設計函式
- python函數語言程式設計之yield表示式形式Python函數程式設計
- 從五大語言看函式和lambda表示式函式
- Python函數語言程式設計-高階函式、匿名函式、裝飾器、偏函式Python函數程式設計函式
- Python 函數語言程式設計 – 高階函式Python函數程式設計函式
- Python函數語言程式設計自帶函式Python函數程式設計函式
- kotlin 函式和 Lambda 表示式Kotlin函式
- 函數語言程式設計-鏈式程式設計RAC函數程式設計
- 倉頡程式語言技術指南:巢狀函式、Lambda 表示式、閉包巢狀函式
- C++ lambda 表示式與「函式物件」(functor)C++函式物件
- JavaScript函數語言程式設計(純函式、柯里化以及組合函式)JavaScript函數程式設計函式
- JDK1.8新特性:Lambda表示式語法和內建函式式介面JDK函式
- JavaScript函數語言程式設計之pointfree與宣告式程式設計JavaScript函數程式設計
- jdk1.8-Lambda函式表示式JDK函式
- 課時21:函式:lambda表示式函式
- 5.函式和lambda表示式函式
- jdk1.8Lambda函式表示式JDK函式
- 初識Lambda表示式(匿名函式)函式
- 從函數語言程式設計到Ramda函式庫(一)函數程式設計函式
- Kotlin 之高階函式與Lambda表示式與閉包Kotlin函式
- java8函數語言程式設計筆記-破壞式更新和函式式更新Java函數程式設計筆記函式
- 深入理解javascript系列(十三):函式與函數語言程式設計(2)JavaScript函式函數程式設計
- 深入理解javascript系列(十二):函式與函數語言程式設計(1)JavaScript函式函數程式設計
- java8新特性之函式式介面、lambda表示式、介面的預設方法、方法和建構函式的引用Java函式
- JavaScript函數語言程式設計,真香之組合函式(二)JavaScript函數程式設計函式
- JavaScript函數語言程式設計之深入理解純函式JavaScript函數程式設計函式
- 函數語言程式設計 - 玩轉高階回撥函式函數程式設計函式
- 【Python】python map()函式和lambda表示式Python函式
- 瞭解 JavaScript 函數語言程式設計 -- 什麼是純函式JavaScript函數程式設計函式
- 理解函數語言程式設計中的函式組合--Monoids(二)函數程式設計函式Mono
- lambda表示式——快速入門
- 好程式設計師Python培訓分享函數語言程式設計之匿名函式程式設計師Python函數函式
- 何時使用函式表示式與函式宣告函式