代码之家  ›  专栏  ›  技术社区  ›  Balaji

如何找到这个curried函数的返回类型?

  •  1
  • Balaji  · 技术社区  · 2 年前
    addition(int a) => (int b) => (int c) => a+b+c;
    

    这是返回的函数 dynamic 目前

    当我打电话的时候 addition(1)(2)(3) 它打印6张,很好

    我想知道 准确的 此函数的返回类型

    我正在尝试咖喱的概念!!

    2 回复  |  直到 2 年前
        1
  •  0
  •   julemand101    2 年前

    正如Rahul所说,在您的示例中,返回值的当前类型为 dynamic 。但是,如果我们想应用静态know类型,它将类似于:

    int Function(int) Function(int) addition(int a) =>
        (int b) => (int c) => a + b + c;
    
    void main() {
      print(addition.runtimeType);
      // (int) => (int) => (int) => int
    }
    
        2
  •  0
  •   Rahul    2 年前

    它应该是动态的。如果未指定任何内容,则返回类型为dynamic。

    此语句可能被破坏为

    addition(int a) {
      return (int b) {
        return (int c) {
          return a+b+c;
        };
      };
    }
    

    这里,由于没有任何函数具有任何返回类型,因此它们都具有dynamic的返回类型