1. 程式人生 > 實用技巧 >ASP.NET Core 3.1使用Swagger

ASP.NET Core 3.1使用Swagger

首先確認什麼事函數語言程式設計,也就是隻需要關心需要什麼,不要關注如何實現。函數語言程式設計更多的是思想上

舉個例子,找一個最小值:

        int[] nums = {1,2,3,4,5,6};
        int min = Integer.MAX_VALUE;

        System.out.println("before :" + min);

        // 指令式程式設計
        for(int i: nums){
            if(i < min){
                min = i;
            }
        }
        System.out.println(
"after :" + min); // 函數語言程式設計 int min2 = IntStream.of(nums).min().getAsInt(); System.out.println("min2 :" + min2); // 如果需要開啟多執行緒 int min3 = IntStream.of(nums).parallel().min().getAsInt(); System.out.println("min3 " + min3); }
before :2147483647
after :
1 min2 :1 min3 1

lambda匿名函式,可以幫助簡化程式碼,是jdk8加入的強大的功能,解決了長期java被人詬病程式碼重複的問題,定義一個方法介面,裡面一般只有一個方法,因此我們在定義介面是,可以儘量介面單一,可以通過繼承方式來實現多介面,lambda表示式幫助我們返回一個介面的例項,可以直接使用進行呼叫,同時jdk8加入新特性,也就是可以定義預設方法,一般介面的所有方法必須全部實現,使用預設方法可以無需實現,這樣如果需要修改介面的話,直接新增預設方法,其實現類照樣可以正常執行

@FunctionalInterface
interface DoubleNum{
    int
doubleNum(int i); default int sum(int x, int y){ x = this.doubleNum(x); return x + y; } } public class Lambda { public static void main(String[] args) { // lambda DoubleNum d1 = (i) -> i *2; // 常用寫法 DoubleNum d2 = i -> i * 3; DoubleNum d3 = i -> { return i*2; }; System.out.println(d1.doubleNum(2)); // 4 System.out.println(d1.sum(2, 2)); // 6 System.out.println(d2.doubleNum(3)); // 9 System.out.println(d2.sum(3, 3)); // 12 System.out.println(d3.doubleNum(4)); // 8 System.out.println(d3.sum(4, 4)); // 12 } }