問題タブ [implicits]

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 に答える
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 に答える
193 参照

scala - 暗黙的な scala ユーザー定義リテラル

私は Scala の柔軟性と簡潔さをとても気に入っています。この金額の定義では、次のようになります。

インスタンスを簡単に作成できます。

スコープ内の次の定義を使用すると、さらに簡単になります。

私の質問は次のとおりです。次のことが可能になる方法はありますか:

各通貨 (EUR、USD など) の関数を定義せずに?

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

scala - Scala スプレークライアントは AKKA ActorRefFactory の暗黙を定義します

Scala とスプレー クライアントを使用して単純な HTTP クライアントを作成しようとしています。私は、 Spray docsにある例に基づいてクライアントを作成しています。

私の問題は、例が新しい暗黙のActorSystem ieを作成していることです

しかし、クライアントを再利用可能にし、新しい ActorSystem を作成しないようにしたいと考えています。

これが私のコードの要点です。

しかし、暗黙に関する2つのコンパイラエラーが発生しています

API 定義を変更するにはどうすればよいですか?

0 投票する
0 に答える
86 参照

scala - リフト、squeryl レコード、および scala の暗黙的: 新しいメソッドをレコードに追加し、AnyVal を拡張する

Squeryl Record (Lift Web フレームワーク) のメソッドを追加したいと思います。このメソッドは、validateTry という名前です。以下のコードを参照してください

期待どおりに動作します。しかし、このようにAnyValを拡張したいと思います

私が見るように、それは「正しい」ものになるからです(私が見るように、パフォーマンスに影響を与えるはずです)。しかし、「extends AnyVal」を追加した後、「value class needs to have just one public val parameter」というエラーを受け取りました。これは何ですか?また、どのように修正しますか? (そして、私は本当に修正する必要がありますか?)

ありがとう。

アップデート。コンストラクター定義に「val」を追加すると、機能し始めました。Vasya Novikov がくれたリンクに感謝します。コードの正しいピースは次のようになります。

そして、それは期待どおりに機能します。ドキュメントには、私が見るようにクラスのインスタンス化を避けるべきだと書かれています。リンクはhttp://docs.scala-lang.org/overviews/core/value-classes.htmlです