Cog
  • 首页
  • 导论
    • 脚本
    • 指令
  • 配方
    • 物品
    • 标签
    • 原版配方修改
    • 模组配方修改
    • 通用配方修改
    • 配方材料替换
  • ZenCode
    • 数据类型
    • 运算符
    • if
    • switch
    • 循环
    • 数组
    • List
    • 映射
    • 数学函数
    • 函数
    • lambda 表达式
    • 预处理器
    • OOP
      • 自定义类
      • 拓展类
      • 空类型安全
      • 运算符重载
      • 泛型
    • 变量代理
  • 高级运用
    • Tooltip
    • 属性修改
    • 物品条件
    • 物品转换器
    • 配方函数
    • 事件
    • 全局战利品修饰器
      • 战利品修饰器
      • 方块掉落修改
      • 实体掉落修改
      • 战利品修饰器管理器
  • ContentTweaker
    • 前言
    • 资源文件
    • 物品
    • 方块
    • 流体
    • 创造标签
    • 高级运用
由 GitBook 提供支持
在本页
  • 格式
  • 用途

这有帮助吗?

  1. ZenCode

lambda 表达式

lambda 表达式取代了 1.12 的匿名函数。

格式

例如 1.12 的 IRecipeFunction 格式为

function(out, ins, info) {
    return out;
}

在 1.15+ 被替换成(虽然 1.15+ 的配方函数不是这样的了,只是举个例子)

(out, ins, info) => {
    return out;
}

上面的是块 lambda 表达式,如果大括号内的语句只有一条的话,可以改成行 lambda 表达式。上面的例子便可以改成……

(out, ins, info) => out

用途

lambda 表达式是一个对象,所以它可以用做方法的参数又或是作为变量。当一个方法的参数为“函数式接口”(Functional Interface)时,就说明这里需要填入一个 lambda 表达式。lambda 表达式的参数和返回值不可乱填,他们的类型和具体意义由函数式接口决定。

上一页函数下一页预处理器

最后更新于4年前

这有帮助吗?