当参数为null时参数的默认值?

时间:2018-07-18 22:41:35

标签: dart

有没有办法使它返回“默认值”而不用写出特殊的函数来检查参数并设置它?

var obj = {
  orders: [
    null,
    {
      date: "2018-07-09 10:07:18",
      item: [
        {
          name: "Warmer Topfenstrudel",
          price: 3.9,
          quantity: 1
        }
      ]
    },
    {
      date: "2018-07-09 10:07:30",
      item: [
        {
          name: "Warmer Topfenstrudel",
          price: 3.9,
          quantity: 1
        }
      ]
    },
    {
      date: "2018-07-09 15:07:18",
      item: [
        {
          name: "Piccata Milanese",
          price: 12.9,
          quantity: 3
        }
      ]
    },
    {
      date: "2018-06-13 10:07:18",
      item: [
        {
          name: "Wiener Schnitzel vom Schwein",
          price: 9.9,
          quantity: 2
        }
      ]
    }
  ]
};

var result = obj.orders.reduce((result, order) => {
  return !order
    ? result
    : result + order.item.reduce((cost, item) => {
        return cost + item.price * item.quantity;
      }, 0);
}, 0);

console.log(result);

我有一个来自Firebase的地图,有时值将为null,我希望我的班级在提供null时使用其默认值。

1 个答案:

答案 0 :(得分:4)

Thing({text}) : this.text = text ?? 'default';

您需要添加此小片段,因为构造函数中的默认值仅在指定了 no 时才起作用。
?? 空感知运算符仅在传递的值实际上为'default'时才使用null值(如果没有,则也会这样)值)。