小编Cra*_*ley的帖子

为什么我们用箭头显示多个参数,并用箭头显示返回类型?

例如在Elm基础文档中:

(/) : Float -> Float -> Float
Run Code Online (Sandbox Code Playgroud)

就是说,这/是一个函数,它接受一个浮点数,另一个浮点数并返回一个浮点数。

为什么会这样:

(/) : (Float, Float) -> Float
Run Code Online (Sandbox Code Playgroud)

例如,这似乎更直观。

是否有特殊原因?这也是在Haskel中注释类型的方式。

https://package.elm-lang.org/packages/elm/core/latest/Basics

编辑:已经回答了,但是我也在Elm的文档中找到了这个:https : //guide.elm-lang.org/appendix/function_types.html

functional-programming elm

4
推荐指数
2
解决办法
87
查看次数

使用.map影响整个对象(使其未定义)而不是更新属性

当我做:

csvParse(txtString, {columns: true})
Run Code Online (Sandbox Code Playgroud)

我得到一个对象数组,在此我想为每个对象更新某个属性.

但所有发生的事情都是对象变得不确定.

这完全符合我的预期:

let x = [{
  y: 123,
  z: 'abc'
}, {
  y: 456,
  z: 'efg'
}, {
  y: 789,
  z: 'hij'
}];

console.log(x);

x.map(x => {
  x.z.toUpperCase();
});
console.log(x); // no changes saved

x.map(x => {
  x.z = x.z.toUpperCase();
});
console.log(x); //now z is uppercase
Run Code Online (Sandbox Code Playgroud)

但是,当我在我的代码中执行相同操作时:

resolve(
  csvParse(txtString, {
    columns: true
  })
  .map(x => {
    x.categories = x.categories
      .replace(regexes.doubleQuotesOrSquareBrackets, '')
      .split(',');
  })
);
Run Code Online (Sandbox Code Playgroud)

结果数组中的每个元素都是未定义的.

javascript ecmascript-6

3
推荐指数
1
解决办法
48
查看次数