Java 函數語言程式設計——閉包



閉包是一個函式,它是一個函式與其周圍狀態的組合。閉包函式通常可以訪問外部函式的範圍。在下面給出的示例中,我們建立了一個 getWeekDay(String[] days) 函式,它返回一個可以返回某一星期中的文字等效項的函式。此處,getWeekDay() 是一個閉包,它返回一個圍繞呼叫函式作用域的函式。

下面的示例顯示了閉包的工作原理。

import java.util.function.Function;

public class FunctionTester {
   public static void main(String[] args) {
      String[] weekDays = {"Monday", "Tuesday", "Wednesday", "Thursday",
         "Friday", "Saturday", "Sunday" };
      Function<Integer, String> getIndianWeekDay = getWeekDay(weekDays);
      System.out.println(getIndianWeekDay.apply(6));      
   }

   public static Function<Integer, String> getWeekDay(String[] weekDays){
      return index -> index >= 0 ? weekDays[index % 7] : null;
   }
}

輸出

Sunday
廣告
© . All rights reserved.