問題タブ [scala-placeholder-syntax]
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.
scala - 名前付き引数の下線
誰かがここで何が起こっているのか正確に説明できますか? 私は今それを完全に理解していません:
引数の名前を書いたので、コンパイラはパラメータの型を推測できないと思います。しかし、なぜですか?引数の名前を言うだけで、もっと難しくないはず?!
ありがとう!
scala - 関数リテラルの構文を単純化するためのScalaアンダースコアの使用
私は次のコードを持っています:
私は最後の文を次のように単純化しようとしました:
しかし、通訳は言います:
私はタイプについてより明確にしようとしました:
コンパイラと私はお互いを理解していません:(
よろしくお願いします、
スタン
scala - Scalaアンダースコア - エラー:展開された関数のパラメータタイプがありません
これについてかなりの数の質問があったことは知っていますが、うまくいくはずだと思った簡単な例を作成しましたが、それでもうまくいかず、理由を理解しているかどうかわかりません
2番目のステートメントがコンパイルされない理由を誰かが説明できますか?
scala - アンダースコアが問題を引き起こす
次のコードがあります。これは、配列を検索し、何かが 2 番目の引数と一致するかどうかを確認することになっています。
次のように呼び出されることになっています。
any(Set(3, 4, 5, 6), _ > 5)
しかし、私がそれを呼び出すとき:
私は関数型言語と Scala の経験がほとんどないので、何が起こっているのか、どのように修正するのかを徹底的に説明してください!
scala - Scalaのアンダースコアに属性を強制的にグループ化する
私がやろうとしていること:
MyObject.myMethod(_:MyType.myAttribute)
これは失敗します
type myAttribute is not a member of object MyObject
どちらが正しい。問題は、に帰するのではなく、myMethod
のmyAttribute
を呼びたいということです。どういうわけかタイプアクリプションをグループ化できますか?タイプを返しますが、これは私が望むものではありません。_:MyType
MyType:myAttribute
_
_:MyType
(_:MyType).myAttribute
MyType => classOf(myAttribute)
編集:私はこの投稿のタイトルとテキストを変更して、これをドットの結合性として参照しないようにしましたが、これは正しくないと思います。
scala - Scala のアンダースコアに一貫性がないことがわかりました
これは機能します:(1 to 5).reduceLeft( _+_ )
しかし、これはしません:(x:Int,y:Int)=>_+_
最初のケースでは無名関数 ( _+_
) が正常にコンパイルされましたが、2 番目のケースでは失敗したため、一貫性がありません。
私が見逃したものや間違っているものはありますか?それとも単なる構文定義ですか?
scala - Scala を使用した List.map でのアンダースコアと文字列の連結
Scala では、アンダースコアを使用して単純なマップを作成できます。たとえば、次のように書く代わりに:
...代わりに次のように書くことができます:
しかし、何らかの理由で私は書くことができません:
代わりに、次のように書く必要があります。
誰でも理由を説明できますか?
scala - 無名関数を定義するためにアンダースコアを管理する規則は何ですか?
無名関数を作成するためのプレースホルダーとして使用_
していますが、問題は、Scala がコードをどのように変換するかを予測できないことです。より正確には、私が望む無名関数の「大きさ」を誤って判断します。
I can see Scalaを使用-Xprint:typer
すると、最初の関数が「大きな無名関数」に変換されます。
働いた 2 番目 3 番目は、私が望むものに正しく変換されます。
なぜこれ?ルールは何ですか?
scala - Scala アンダースコア: エラー: 展開された関数のパラメーターの型がありません
最近、scala の学習を始めましたが、アンダースコアのしくみに少し戸惑いました。ほとんどの場合、便利な匿名メソッドを提供しますが、コンパイラ (および私) を混乱させるだけの場合もあります。
例えば、
これは機能します
この
しかし、これではありません
いくつかの同様のケースがフォーラムで質問されています (つまり、 this one )。それらのほとんどは、これが this のような無名関数に拡張されていると述べていますx => randomList.groupBy(x)
。コンパイラが2番目のケースをコンパイルする方法を知っているのに、3番目のケースを知らない理由がわかりません。また、明示的な関数を書かずに最後のケースを解決する方法はありますか?