Dart基礎之 Callable class

前言

Callable class是什麼鬼,若是學過 Java,你確定會有這樣的疑問。編程

沒關係,耐心看下去。函數式編程

什麼是 Callable class(可調用類)

在 Dart 中容許一個類經過實現call()方法,讓實例像函數那樣被直接調用的類, 稱爲callable class函數

看個例子

class WannabeFunction {
  call(String a, String b, String c) => '$a $b $c!';
}

main() {
  var wf = new WannabeFunction();
  var out = wf("Hi","there,","gang");
  print('$out');
}
複製代碼

這裏,咱們定義了一個名叫 WannabeFunction的類,實現了一個call()方法。 而後在main函數中新建一個WannableFunction的實例wf,直接用實例函數的寫法調用wf("Hi","there,","gang")ui

好處是什麼

callable class 這樣的語法設計有三個好處:this

  • 能夠讓初始化後置
  • 相對的能省略一個命名函數
  • 支持函數式編程(傳遞方法對象)

可否定義多個 call()

答案是不能spa

class Person {
  String name;
  int age;

  call(String name, int age) {
    this.name = name;
    this.age = age;
  }

  call(){} //解析時報錯call()已經定義了
  
}
複製代碼

call()返回值

返回 Dart 中的 dynamic 對象, 這樣也就適合函數式編程了。設計

後話

有關 callable class 的介紹,官方文檔中不多說起,水平有限,只能講解到這了,若是你有更好的想法,歡迎給我提建議。code

相關文章
相關標籤/搜索