他の関数を垂直方向に呼び出すときに、このタイプのコーディングの名前が不思議でした。すなわち:javascriptの垂直実行の名前
fs.readFileSync('data.txt', 'utf8')
.trim()
.split('\n')
.map(line => line.split('\t'))
.reduce((acum, elem) => {
acum + parseInt(elem[1])
}, 0)
他の関数を垂直方向に呼び出すときに、このタイプのコーディングの名前が不思議でした。すなわち:javascriptの垂直実行の名前
fs.readFileSync('data.txt', 'utf8')
.trim()
.split('\n')
.map(line => line.split('\t'))
.reduce((acum, elem) => {
acum + parseInt(elem[1])
}, 0)
メソッド連鎖と呼ばれます。これは、プログラムを構造化するためのきれいな方法です。
それはをチェーンmethod chainingか関数と呼ばれます。ウィキペディアにはjQuery exampleがあります。
その記事から: "メソッド連鎖は_train wreck_とも呼ばれます":D私はそれも素晴らしい記述子だと思っています(奇妙なことに、他の言語でも有効です)。私はそれがページから編集されるかどうか分からないので、どこかに生きたいと思っていました。 – vlaz
@vlaz素晴らしい観察!しかし、ほとんどの人は、メソッド呼び出しの間に改行を入れることでそれを回避します。 –
空白は重要な部分ではないため、垂直方向に呼び出す必要はありません。 「Fluent Interface」または単に「チェーン」と呼ばれています。ここでは、すべてのメソッドがオブジェクトを返すため、別のメソッドを呼び出すことができます。
「Fluent Interface」は、JavaScriptを記述するのに使われてきたものではありませんが、通常は他のOO言語です。その理由は、多くの関数が "連鎖可能な"出力を返すので、それは本当に例外的なことではないと思います。流暢なインターフェースは注目に値すると思います。 – vlaz
@vlaz JavaScriptは[wikipediaのページ](https://en.wikipedia.org/wiki/Fluent_interface#JavaScript)にリストされています。 – 4castle
@ 4castle JavaScriptを記述するのに使ったのはこれが初めてです。おそらく、FIは一般に_same_オブジェクトが返されるということを指摘する価値があります。そのため、チェーン内の次の各呼び出しは基底のインスタンスで動作しますが、JSのほとんどの時間は各呼び出しが_ 1、2、3] .map()。filter() 'は実際には3つの配列を生成し、同じ配列を操作しません。また、なぜFIがそれほど大きくならないのかもしれない。 – vlaz
これは_チェーンコールと呼ばれます_。 – vlaz
「縦に」とはどういう意味ですか?これらは連鎖した関数呼び出しで、垂直方向に整列して書かれています(1行に書いたり、他の方法で整列することもできますが、おそらく最も読みやすいオプションです) – UnholySheep
これは必ずしも "連鎖"いくつかの中間値がここで使用されているからです。 「連鎖的な呼び出し」は適切なポストのようです。また、「パイプライン」と呼ぶものもあります。 – 4castle