代码之家  ›  专栏  ›  技术社区  ›  Aggelos Biboudis

与单位对比无效

  •  8
  • Aggelos Biboudis  · 技术社区  · 16 年前

    2 回复  |  直到 14 年前
        1
  •  12
  •   Brian    16 年前
        2
  •  10
  •   John Feminella    16 年前

    在函数式编程中,我们通常谈论将输入映射到输出。这从字面上来说意味着将一个参数映射到它的返回值。但是,如果某种东西将成为数学/范畴理论意义上的函数,它必须返回 . A. void 值表示函数不返回任何内容,这在这些术语中是毫无意义的。

    unit 无效的 . 它本质上是一个只有一个值的类型, ()

    public static <T, U> List<U> map(List<T> in, Function<T, U> func) {
      List<U> out = new ArrayList<U>(in.size());
      for (T t : in) {
         out.add(func.apply(t));
      }
      return out;
    }
    

    这适用于特定的功能 func 添加到列表中的每个元素,生成一个新的 func 但是如果传入一个只打印参数的函数,会发生什么呢? 它没有输出类型,所以您可以输入什么 U

    无效的 到泛型类型)。你必须采取一些变通办法,比如 Action<T> ,可能会变得笨重。

    这就是我们的概念 单元 信息技术 一个类型,但只能接受一个值。这大大简化了链接和组合之类的事情,并大大减少了您需要担心的特殊情况的数量。