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

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

3
Scalaの不変セットがその型で共変ではないのはなぜですか?
編集:この質問を元の回答に基づいて書き直しました scala.collection.immutable.Setクラスは、その型パラメータの共変ではありません。どうしてこれなの? import scala.collection.immutable._ def foo(s: Set[CharSequence]): Unit = { println(s) } def bar(): Unit = { val s: Set[String] = Set("Hello", "World"); foo(s); //DOES NOT COMPILE, regardless of whether type is declared //explicitly in the val s declaration }

3
Scalaでのシンボルリテラルの使用例は何ですか?
シンボルリテラルの使用は、私がScalaで読んだものからすぐにはわかりません。誰かが現実の世界での使用を共有したいと思いますか? シンボルリテラルでカバーされている特定のJavaイディオムはありますか?どの言語に似た構成がありますか?私はPythonの出身ですが、その言語に類似するものがあるかどうかはわかりません。 「HelloWorld対 "HelloWorld"を使用する動機は何ですか? ありがとう
93 syntax  scala 


1
scala.concurrent.Promiseのユースケースは何ですか?
私はSIP-14を読んでおり、その概念Futureは完全に理解でき、理解しやすくなっています。ただし、次の2つの質問がありPromiseます。 SIPは言うDepending on the implementation, it may be the case that p.future == p。どうすればいいの?あるFutureとPromise2つのタイプがありませんか? いつ使用すべきPromiseですか?producer and consumerコード例: import scala.concurrent.{ future, promise } val p = promise[T] val f = p.future val producer = future { val r = produceSomething() p success r continueDoingSomethingUnrelated() } val consumer = future { startDoingSomething() …

3
暗黙的な変換とタイプクラス
Scalaでは、少なくとも2つの方法を使用して、既存の型または新しい型を改良できます。を使用して何かを数量化できることを表現したいとしIntます。次の特性を定義できます。 暗黙的な変換 trait Quantifiable{ def quantify: Int } そして、暗黙の変換を使用して、たとえば文字列やリストを定量化できます。 implicit def string2quant(s: String) = new Quantifiable{ def quantify = s.size } implicit def list2quantifiable[A](l: List[A]) = new Quantifiable{ val quantify = l.size } これらをインポートした後quantify、文字列とリストのメソッドを呼び出すことができます。定量化可能なリストはその長さを格納するため、後続のへの呼び出しでのリストの高価な走査を回避することに注意してくださいquantify。 型クラス 別の方法はQuantified[A]、あるタイプAは数量化できることを示す「目撃者」を定義することです。 trait Quantified[A] { def quantify(a: A): Int } 私たちは、このタイプのクラスのインスタンスを提供Stringし、Listどこかに。 implicit val stringQuantifiable = new …

14
Spark-アプリの送信時にエラー「構成にマスターURLを設定する必要があります」
ローカルモードで問題なく実行されるSparkアプリがありますが、Sparkクラスターに送信するときにいくつかの問題があります。 エラーメッセージは次のとおりです。 16/06/24 15:42:06 WARN scheduler.TaskSetManager: Lost task 2.0 in stage 0.0 (TID 2, cluster-node-02): java.lang.ExceptionInInitializerError at GroupEvolutionES$$anonfun$6.apply(GroupEvolutionES.scala:579) at GroupEvolutionES$$anonfun$6.apply(GroupEvolutionES.scala:579) at scala.collection.Iterator$$anon$14.hasNext(Iterator.scala:390) at org.apache.spark.util.Utils$.getIteratorSize(Utils.scala:1595) at org.apache.spark.rdd.RDD$$anonfun$count$1.apply(RDD.scala:1157) at org.apache.spark.rdd.RDD$$anonfun$count$1.apply(RDD.scala:1157) at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858) at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858) at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66) at org.apache.spark.scheduler.Task.run(Task.scala:89) at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.spark.SparkException: A master URL …

3
Scalaの「新しい」キーワード
非常に簡単な質問があります。Scalaでオブジェクトを作成するときに、いつ新しいキーワードを適用すればよいですか?Javaオブジェクトのみをインスタンス化しようとしたときですか?


3
Scalaで関数を定義するこれらの3つの方法の違い
同じ関数を表現する3つの方法を考えますf(a) := a + 1。 val f1 = (a:Int) => a + 1 def f2 = (a:Int) => a + 1 def f3:(Int => Int) = a => a + 1 これらの定義はどのように異なりますか?REPLは明らかな違いを示していません。 scala> f1 res38: (Int) => Int = <function1> scala> f2 res39: (Int) => Int = <function1> scala> f3 …
92 scala 

3
ライブラリーの充実パターンをScalaコレクションに適用するにはどうすればよいですか?
Scalaで利用できる最も強力なパターンの1つは、enrich-my-library *パターンです。これは、暗黙の変換を使用して、動的メソッド解決を必要とせずに既存のクラスにメソッドを追加するように見えます。たとえば、すべての文字列に、spaces空白文字の数をカウントするメソッドが必要な場合、次のことができます。 class SpaceCounter(s: String) { def spaces = s.count(_.isWhitespace) } implicit def string_counts_spaces(s: String) = new SpaceCounter(s) scala> "How many spaces do I have?".spaces res1: Int = 5 残念ながら、このパターンはジェネリックコレクションを処理するときに問題に遭遇します。たとえば、コレクションでアイテムを順番にグループ化することについて、多くの質問がされています。ワンショットで機能するビルトインは何もないので、これは、ジェネリックコレクションCとジェネリックエレメントタイプを使用したrich-my-libraryパターンの理想的な候補のようですA。 class SequentiallyGroupingCollection[A, C[A] <: Seq[A]](ca: C[A]) { def groupIdentical: C[C[A]] = { if (ca.isEmpty) C.empty[C[A]] else { val first = …

1
ハウツー:Lift-Record-Squerylのカスタムフィールド
私が作るしようとしているEnumListFieldにエレベーター/録音/ Squeryl、中には似MappedEnumListでLiftMapper。ストレージタイプはLong / BIGINTである必要があります。私が定義すると、 def classOfPersistentField = classOf[Long] 次に、SquerylはBIGINT列を作成する必要があることを認識します。そして私はそれsetFromAny()が値を設定するために使用し、Longを渡すことを知っています。私が入手できないワンピースは: フィールドの値をどのように読み取りますか?を使用する場合valueBox、を取得しSeq[Enum#Value]、それをLongに変換する方法がわかりません。 Squerylに自分Seq[Enum#Value]をLong に変換するように指示する方法、またはLongを返し、「通常の」ゲッターと競合しない「getter」を定義する方法を教えてください。
92 scala  lift  record  squeryl 

10
Scalaで3つ以上のリストを一緒に圧縮できますか?
次のScalaリストがあるとします。 val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3")) どうすれば入手することができますか: List(("a1", "a2", "a3"), ("b1", "b2", "b3"), ("c1", "c2", "c3")) zipは2つのリストを組み合わせるためにのみ使用できるので、メインリストを何とか反復/削減する必要があると思います。当然のことながら、以下は機能しません。 scala> l reduceLeft ((a, b) => a zip b) <console>:6: error: type mismatch; found : List[(String, String)] required: List[String] l reduceLeft ((a, b) => a zip …

30
エディターにメインタイプが含まれていません
ScalaのWebサイトにあるサンプルのScalaコードを試してみましたが、実行しようとすると迷惑なエラーが発生しました。 これがコードです:http : //www.scala-lang.org/node/45。Eclipseで実行すると、「エディターにメインタイプが含まれていません」というメッセージが表示され、実行できません。 私がする必要があることはありますか...つまり、そのファイルを複数のファイルに分割しますか?
92 eclipse  scala 

4
パッケージオブジェクト
パッケージオブジェクトとは何ですか?概念ではなく、その使用方法は? 私は例を動作させるように試みました、そして私が動作するようになった唯一のフォームは以下の通りです: package object investigations { val PackageObjectVal = "A package object val" } package investigations { object PackageObjectTest { def main(args: Array[String]) { println("Referencing a package object val: " + PackageObjectVal) } } } これまでに私が行った観察は次のとおりです。 package object _root_ { ... } 禁止されています(これは妥当です)、 package object x.y { ... } また、許可されていません。 …
92 scala  scala-2.8 


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