問題タブ [function-literal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3498 参照

scala - Questions about placeholders in Scala

Consider the following definition in Scala:

The code assigns to f the string representation of the function literal _ + 1, which is quite natural, except that this is not i want. i intended to define a function that accepts an int argument, increments it by 1, and returns its string format.

To disambiguate, i have to write a lambda expression with explicit parameters:

So can i conclude that the placeholder syntax is not suitable for complex function literals? Or is there some rule that states the scope of the function literal? It seems placeholders cannot be nested in parentheses(except the ones needed for defining its type) within the function literal

0 投票する
6 に答える
13339 参照

javascript - JavaScript における関数リテラルの正確な意味

JavaScript には、オブジェクト リテラルと関数リテラルの両方があります。

オブジェクトリテラル:

関数リテラル:

リテラルという言葉の意味は何ですか?Java にはメソッド リテラルがあると言えますか?

0 投票する
3 に答える
26968 参照

scala - 無名関数の引数の型は完全にわかっている必要があります。(SLS 8.5)

関数リテラルがあります

エラーメッセージが表示される

SLS 8.5を調べましたが、説明が見つかりませんでした。

関数を自分で展開すると

エラーはなくなります。

(a) なぜこれがエラーなのですか?

(b) どうすれば修正できますか?

: QualifiedTypeパターンと => の間に追加するという明らかな修正を試みましたが、これは構文エラーです。


私が気づいたことの 1 つは、コンテキストが違いを生むということです。関数リテラルを、期待されると宣言された関数の引数として使用すると、QualifiedType => Bエラーは発生しません。しかし、 を期待する関数の引数として使用するとA => B、エラーが発生します。ここで起こっていることは、型が QualifiedType のスーパータイプであるオブジェクトにパターンが適用される可能性があるため、関数が適用されないという保証がなければ、コンパイラは明らかな型を割り当てようとしないということです。 QualifiedType ではないもの。本当に私が望んでいるのは{QualifiedType( preds, ty) => ...} 、Haskell の\QualifiedType(preds,ty) -> ....

0 投票する
2 に答える
12912 参照

scala - Scala の引数としての複数行関数リテラル

関数リテラルを使用すると、複数のステートメントであっても中括弧を無視できることがあるのはなぜだろうかといつも思っていました。これを説明するために、複数行の関数リテラルの構文では、ステートメントを中かっこで囲みます。そのようです、

ただし、引数が 1 つの関数に渡す場合は、関数リテラルに必要な中かっこを無視できます。

したがって、与えられた関数 f に対して、

このように f() を呼び出すことができます。

または、関数呼び出しで括弧の代わりに中括弧を使用する場合、関数リテラルから内側の中括弧を削除できます。したがって、次のコードも機能します。

上記のコードはより読みやすく、多くの例でこの構文が使用されていることに気付きました。ただし、これが意図したとおりに機能する理由を説明するために、私が見逃した可能性のある特別なルールはありますか?

0 投票する
1 に答える
744 参照

javascript - ノックアウト - keyCode プロパティがラップされた関数を介して渡されない

Enter入力フィールドで検出したいので、キープレスイベントを持つようにノックアウトバインディングを設定しました。

私が以下を持っている場合:

そして私のビューモデルは

その後、キーコードが期待どおりに表示されます。

ただし、追加のパラメーターを関数に渡したいので、 hereKeyPressの例に従って、

そして私の対応する関数は今

これで、keyCodeプロパティは常に 0 を返します。eventオブジェクト内で、charCodeキーを押すたびにプロパティが設定されていることがわかりますが、プロパティは設定されていませんkeyCode(印刷できない文字はすべて 0 であるため、charCodeプロパティはあまり使用されません)。

eventオブジェクトにoriginalEventプロパティがあることもわかりますがkeyCode、ここでは同じ、つまり0 です。

keyCodeそれで、関数リテラルを介して伝播するプロパティを取得する方法を誰か教えてもらえますか?

これは、それを示すJsFiddleです。

0 投票する
2 に答える
384 参照

scala - 部分的に適用されたコンストラクターをラップする Scala クラス - それを使用して API メソッドを作成する方法は?

時間間隔を処理するための単純な API を作成しようとしています。(私は joda time を認識しており、それを再発明しようとしているわけではありません。これはむしろ演習です)。

私が達成したいのはこれです:

(1)


(2)


次のように(1)を実装することができました:(toString、Ordered trait、asoを無視)


ただし、(2) (つまり Interval.forMinutes) の実装方法がわかりません。

これについて頭を包むことはできないようです。
この「HalfInterval」ラッパーTime => Intervalはまったく意味がありますか? 機能概念モデルを念頭に置くのではなく
、呼び出しが計画どおりに機能するように、経験的に設計しました。 このAPIを達成するためのより良い方法はありますか?from(..).to(..)

ありがとう

0 投票する
1 に答える
133 参照

scala - val と def による関数リテラル参照

参照/定義のこれら2つのアプローチの決定的な違いを理解しようとしていますFunction Literal(への参照anonymous function):

val

そして、def

使用感としてはほぼ同じと思われます。引数として受け入れる関数にv2orを渡すことができます。その..に引数を渡すf2(Int) => Int

v2の場合、Function1オブジェクトを参照するオブジェクトを作成すると思いFunction1ます..のようにproxy

わかりました..私の質問は: 1 番目と 2 番目のアプローチの長所と短所は何ですか?

そして、それは によって定義されdefていますが、まだFunction Literalですか?

0 投票する
4 に答える
2442 参照

function - scala 関数リテラルの `return`

私はこのようなことをしようとしています:

ただし、私の IDE はReturn statement outside method definition. では、scala の関数リテラルで明示的に return ステートメントを指定するにはどうすればよいでしょうか?