タグ付けされた質問 「scala」

Scalaは、主にJava仮想マシンを対象とする汎用プログラミング言語です。一般的なプログラミングパターンを簡潔、エレガント、タイプセーフな方法で表現するように設計されており、命令型プログラミングと関数型プログラミングのスタイルを融合しています。その主な機能は次のとおりです。型推論を持つ高度な静的型システム。関数タイプ; パターンマッチング; 暗黙的なパラメータと変換。演算子のオーバーロード。Javaとの完全な相互運用性。並行性


4
Akka Kill vs. Stop vs. Poison Pill?
Akkaの初心者の質問-Akka Essentialsについて読んでいます。AkkaStop / Poison PillとKillの違いを誰かに説明してもらえますか?この本は、「キルは同期的であるのに対し、ポイズンピルは非同期的である」というほんの少しの説明を提供しています。しかし、どのように?この間、呼び出し元のスレッドはロックされますか?殺したり、ポストストップが呼び出されたりしたときに、子供俳優に通知されますか?ある概念と他の概念の使用例? どうもありがとう!
212 scala  akka 

5
ケースクラスのインスタンスを複製し、Scalaの1つのフィールドのみを変更する方法は?
ペルソナ、さまざまなソーシャルネットワークの人々を表すケースクラスがあるとします。そのクラスのインスタンスは完全に不変であり、不変のコレクションに保持され、最終的にAkkaアクターによって変更されます。 これで、多くのフィールドを持つケースクラスがあり、次のようなフィールドの1つを更新する必要があることを示すメッセージが表示されます。 case class Persona(serviceName : String, serviceId : String, sentMessages : Set[String]) // Somewhere deep in an actor val newPersona = Persona(existingPersona.serviceName, existingPersona.serviceId, existingPersona.sentMessages + newMessage) 変更するのは1つだけですが、すべてのフィールドを指定する必要があることに注意してください。変更されないすべてのフィールドを指定せずに、existingPersonaを複製して1つのフィールドのみを置き換える方法はありますか?これを特性として記述して、すべてのケースクラスに使用できますか? ペルソナがマップのようなインスタンスである場合、それを行うのは簡単です。
208 scala 

5
Scalaのリストにあるアイテムを取得しますか?
スカラのリストから、インデックスiの要素だけを世界でどのように取得しますか? 私が試したところget(i)、 [i]何もうまくいきませんでした。グーグルは、リスト内の要素を「見つける」方法のみを返します。しかし、私はすでに要素のインデックスを知っています! コンパイルしないコードは次のとおりです。 def buildTree(data: List[Data2D]):Node ={ if(data.length == 1){ var point:Data2D = data[0] //Nope - does not work } return null } リストapiを見ても、目が交差するだけでは役に立ちません。
205 scala 

4
Scala 2.8で<:<、<%<、および=:=は何を意味し、それらはどこに文書化されていますか?
PredefのAPIドキュメントで、それらがジェネリック関数タイプ(From)=&gt; Toのサブクラスであることがわかりますが、それだけです。えっと、何?ドキュメントはどこかにあるかもしれませんが、検索エンジンは "&lt;:&lt;"のような "名前"をうまく処理しないので、私はそれを見つけることができませんでした。 追加質問:これらのファンキーなシンボル/クラスを使用する必要があるのはなぜですか?

6
ScalaでVectorを選択する必要があるのはいつですか?
VectorScalaコレクションパーティーに遅れたようで、影響力のあるすべてのブログ投稿はすでに残されていました。 Java ArrayListではデフォルトのコレクションです-私は使用するかもしれませんLinkedListが、アルゴリズムを熟考し、最適化するのに十分注意した場合のみです。Scala Vectorでは、デフォルトとしてを使用する必要がありますSeqか、それともList実際に適切な場合に解決する必要がありますか?



7
ScalaのfoldLeftとreduceLeftの違い
私は基本的な違いを学んだの間foldLeftとreduceLeft foldLeft: 初期値を渡す必要があります reduceLeft: コレクションの最初の要素を初期値として受け取ります コレクションが空の場合は例外をスローします 他に違いはありますか? 同様の機能を持つ2つのメソッドがある特定の理由は?

18
利用可能なScalaウェブフレームワークは何ですか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 5年前休業。 この質問を改善する 私はScalaの学習を開始したばかりで、最初に実装するのは小さなWebアプリケーションです。私は昨年、サーバーサイドソフトウェアを実装するためにErlangを使用してきましたが、これまでにWebアプリケーションを作成したことはありません。それは素晴らしい経験になります。 Lift以外にScalaのWebフレームワークはありますか? 誤解しないでください。Liftはすばらしく見えます。フレームワークがいくつあるか知りたいので、その中から選択できます。常に選択肢があるのは良いことですが、私が見つけたのはリフトだけでした。

4
Scalaで `:_ *`(コロンアンダースコアスター)は何をしますか?
この質問からの次のコードがあります: def addChild(n: Node, newChild: Node) = n match { case Elem(prefix, label, attribs, scope, child @ _*) =&gt; Elem(prefix, label, attribs, scope, child ++ newChild : _*) case _ =&gt; error("Can only add children to elements!") } この部分を除いて、すべてがかなり明確です。 child ++ newChild : _* それは何をするためのものか? Seq[Node]別のと連結されていることを理解しNode、それから?何をし: _*ますか?


2
Java java.lang.Class <T>オブジェクトに相当するScala
質問は例で最もよく説明されます: JPA EntityManagerのJavaでは、次のことができます(アカウントは私のEntityクラスです)。 Account result = manager.find(Account.class, primaryKey); Scalaでは、私の素朴な試みは次のとおりです。 val result = manager.find(Account.class, primaryKey) しかしAccount.class、Scalaで使用しようとすると、このようにはならないようです。ScalaでAccountクラスのjava.lang.Classオブジェクトを指定するにはどうすればよいですか?
183 java  class  scala 

15
「型分離」(共用体型)を定義する方法は?
提案されている 1つの方法オーバーロードされたメソッドの二重定義を処理するためにれ方法は、オーバーロードをパターンマッチングで置き換えることです。 object Bar { def foo(xs: Any*) = xs foreach { case _:String =&gt; println("str") case _:Int =&gt; println("int") case _ =&gt; throw new UglyRuntimeException() } } このアプローチでは、への引数の静的型チェックを放棄する必要がありますfoo。書くことができればもっといいでしょう object Bar { def foo(xs: (String or Int)*) = xs foreach { case _: String =&gt; println("str") case _: Int =&gt; …
181 scala 

1
マクロから匿名クラスのメソッドを持つ構造型を取得する
いくつかの型のメンバーまたはメソッドで匿名クラスを定義し、それらのメソッドなどで構造型として静的に型指定されたクラスのインスタンスを作成するマクロを作成するとします。これは、2.10のマクロシステムで可能です。 0、そして型メンバー部分は非常に簡単です: object MacroExample extends ReflectionUtils { import scala.language.experimental.macros import scala.reflect.macros.Context def foo(name: String): Any = macro foo_impl def foo_impl(c: Context)(name: c.Expr[String]) = { import c.universe._ val Literal(Constant(lit: String)) = name.tree val anon = newTypeName(c.fresh) c.Expr(Block( ClassDef( Modifiers(Flag.FINAL), anon, Nil, Template( Nil, emptyValDef, List( constructor(c.universe), TypeDef(Modifiers(), newTypeName(lit), Nil, TypeTree(typeOf[Int])) ) …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.