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

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

2
Build.scala、%および%%記号の意味
Playは初めてです。フレームワーク2.1(Javaバージョン)で、Scalaの使用経験はありません。Build.scala %と%%は何か、何が何を意味するのか理解できません。私はそれらについてググったが、それらの意味を見つけることができなかった。 私のBuild.scalaファイルには、次のものが含まれています。 "org.hibernate" % "hibernate-entitymanager" % "4.1.0.Final", "com.typesafe" %% "play-plugins-mailer" % "2.1" 最初の行で1つの%記号を使用し、2番目の行で2パーセント記号を使用するのはなぜ%%ですか?それらは何のため?

4
=>、()=>、およびUnit =>の違いは何ですか
引数を取らず、値を返さない関数を表現しようとしています(知っている必要がある場合は、JavaScriptでsetTimeout関数をシミュレートしています)。 case class Scheduled(time : Int, callback : => Unit) 「 `val 'パラメータは名前による呼び出しではない可能性があります」と言ってコンパイルしません case class Scheduled(time : Int, callback : () => Unit) コンパイルしますが、代わりに奇妙に呼び出す必要があります Scheduled(40, { println("x") } ) 私はこれをしなければなりません Scheduled(40, { () => println("x") } ) また、うまくいくのは class Scheduled(time : Int, callback : Unit => Unit) しかし、あまり意味のない方法で呼び出されます Scheduled(40, { …
153 scala 

4
Scalaの型ラムダとは何ですか?それらの利点は何ですか?
時々、私は半神秘的な記法に出くわします def f[T](..) = new T[({type l[A]=SomeType[A,..]})#l] {..} Scalaのブログ投稿では、「その型ラムダトリックを使用した」ハンドウェーブを提供しています。 私はこれについていくらか直観的ですが(A定義を汚染することなく匿名の型パラメーターを取得しますか?)、型ラムダトリックとは何か、およびその利点は何かを説明する明確な情報源が見つかりませんでした。それは単に構文上の砂糖ですか、それともいくつかの新しい次元を開きますか?
152 scala  types 

23
Spark SQLのDataFrameで列タイプを変更するにはどうすればよいですか?
私が次のようなことをしているとしましょう: val df = sqlContext.load("com.databricks.spark.csv", Map("path" -> "cars.csv", "header" -> "true")) df.printSchema() root |-- year: string (nullable = true) |-- make: string (nullable = true) |-- model: string (nullable = true) |-- comment: string (nullable = true) |-- blank: string (nullable = true) df.show() year make model comment blank 2012 …

10
なぜJava / SpringではなくScala / Liftを使用するのですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 この質問を改善する 私はこの質問が少しオープンであることを知っていますが、私はJava / Springの代替としてScala / Liftを検討しており、Scala / Liftがそれよりも優れている本当の利点は何だろうと思います。私の見解と経験から、Java AnnotationsとSpringは、アプリケーションに対して実行する必要があるコーディングの量を本当に最小限に抑えます。Scala / Liftはそれを改善しますか?
151 java  spring  scala  lift 

2
ShapelessでのNatタイプの制限
無形の場合、Nat型は、型レベルで自然数をエンコードする方法を表します。これは、たとえば固定サイズのリストに使用されます。タイプレベルで計算を行うこともできます。たとえば、N要素のリストに要素のリストを追加し、Kコンパイル時にN+K要素があることがわかっているリストを取得します。 この表現は、たとえば10000002または53のような大きな数を表すことができますか、それともScalaコンパイラーが諦めることになりますか?

6
ScalaTest in sbt:タグなしで単一のテストを実行する方法はありますか?
sbtで実行することで、単一のテストを実行できることを知っています。 testOnly *class -- -n Tag タグなしで単一のテストを実行するようにsbt / scalatestに指示する方法はありますか?例えば: testOnly *class -- -X 2 「クラスの2番目のテストを実行します。何であれ」という意味になります。私たちにはたくさんのテストがあり、誰もそれらにタグを付けることを気にしませんでした、それでタグなしで単一のテストを実行する方法はありますか?
150 scala  testing  sbt  scalatest 

28
Scalaの隠された機能
ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 すべてのScala開発者が知っておくべきScalaの隠された機能は何ですか? 回答ごとに1つの非表示機能をお願いします。

8
カスタムオブジェクトをデータセットに保存する方法
Sparkデータセットの紹介によると: Spark 2.0を楽しみにして、特にデータセットにいくつかのエキサイティングな改善を計画します。...カスタムエンコーダー-現在、さまざまなタイプのエンコーダーを自動生成していますが、カスタムオブジェクトのAPIを開きたいと考えています。 カスタムタイプを保存しようとするとDataset、次のようなエラーが発生します: データセットに保存されているタイプのエンコーダーが見つかりません。プリミティブ型(Int、Stringなど)および製品型(ケースクラス)は、sqlContext.implicits._のインポートによってサポートされます。他の型のシリアル化のサポートは、将来のリリースで追加されます または: Java.lang.UnsupportedOperationException:...のエンコーダーが見つかりません 既存の回避策はありますか? この質問は、コミュニティWiki回答のエントリポイントとしてのみ存在することに注意してください。質問と回答の両方を自由に更新/改善してください。

4
Scalaのパターンマッチングシステムでの比較演算子の使用
Scalaのパターンマッチングシステムを使用して比較を照合することはできますか?例えば: a match { case 10 => println("ten") case _ > 10 => println("greater than ten") case _ => println("less than ten") } 2番目のケースステートメントは違法ですが、「aがいつより大きいか」を指定できるようにしたいと思います。

7
Scalaコンパイラーがデフォルトの引数を持つオーバーロードされたメソッドを許可しないのはなぜですか?
このようなメソッドのオーバーロードがあいまいになる可能性のある有効なケースがあるかもしれませんが、なぜコンパイラはコンパイル時も実行時もあいまいでないコードを許可しないのですか? 例: // This fails: def foo(a: String)(b: Int = 42) = a + b def foo(a: Int) (b: Int = 42) = a + b // This fails, too. Even if there is no position in the argument list, // where the types are the same. def foo(a: Int) …

4
(co-、contra-、in-)分散がどのように機能するのか、例ではコンパイルできないのはなぜですか?
この質問に続いて、誰かがScalaで次のことを説明できますか? class Slot[+T] (var some: T) { // DOES NOT COMPILE // "COVARIANT parameter in CONTRAVARIANT position" } 型宣言の+Tとの違いを理解してTいます(を使用するとコンパイルされますT)。しかし、その後どのように一つは、実際のものを作成するに頼ることなく、その型パラメータで共変であるクラス記述んunparametrizedを?以下がのインスタンスでのみ作成できることをどのように確認できますTか? class Slot[+T] (var some: Object){ def get() = { some.asInstanceOf[T] } } 編集 -これは次のようになりました: abstract class _Slot[+T, V <: T] (var some: V) { def getT() = { some } } …

7
IntelliJ Ideaを使用してSBTプロジェクトを作成する方法
Scala / LiftWeb / Sbtの開発を始めたばかりで、IntelliJ IdeaにSbtプロジェクトをインポートしたいのですが。実際、私は2つの異なる方法でプロジェクトをインポートできました。 1)Mavenを使用。私はMavenプロジェクトを作成し、その上でSbtプロジェクトを作成してから、IntelliJにインポートしました。その後、Jetty Serverを簡単に起動、停止、その他の操作を行うことができました。しかし、それは私が望んでいることではありません。同じことをしたいのですが、Mavenフリーです。それは私につながる 2)Eclipseを使用。そこで、新しいSbtプロジェクトを作成しました(私が書いた小さなスクリプトを使用して、SbtプロジェクトをWebProjectとして構成しました)。次に、sbt-eclipsifyプラグインを使用してプロジェクトをEclipse用に「変換」し、IntelliJにインポートしました(既存のソース-> Eclipse)。しかし、問題はここから始まりました。IntelliJSbtプラグインを機能させることができません。 誰かがこれを手伝ってくれる?
146 scala  intellij-idea  lift  sbt 

4
HListはタプルを書く複雑な方法にすぎませんか?
違いがどこにあるのか、より一般的には、HListを使用できない(または、通常のリストに比べてメリットがない)正規のユースケースを特定することに本当に興味があります。 (私はTupleNScala には22(私は信じている)があることを知っていますが、1つは単一のHListを必要とするだけですが、それは私が興味を持っている種類の概念の違いではありません。) 以下のテキストにいくつか質問をマークしました。実際にそれらに答える必要はないかもしれません、彼らは私に不明瞭なことを指摘し、特定の方向に議論を導くためのものです。 動機 私は最近、人々が(によって提供されるように、例えばHListsを使用することが提案SO上の回答のカップルを見てきました型崩れを削除答えを含む)、この質問を。それがこの議論を引き起こし、それが今度はこの疑問を引き起こしました。 はじめに 要素の数とその正確なタイプを静的に知っている場合にのみ、hlistが役立つように思えます。数は実際には重要ではありませんが、静的に正確に認識されているさまざまなタイプの要素を含むリストを生成する必要がある可能性は低いですが、静的にその数がわかっていません。質問1:そのような例を、たとえばループで書くことさえできますか?私の直感は、静的に不明な数の任意の要素(特定のクラス階層に対して任意)を持つ静的に正確なhlistを持つことは互換性がないということです。 HListsとタプル これが真である場合、つまり、静的に数値と型を知っている場合- 質問2:なぜnタプルを使用しないのですか?確かに、あなたはtypesafelyマッピングすることができますし、(あなたもすることができますが、HList折り重なっていないの助けを借りて、タプルを超える行うtypesafely、 productIterator)が、要素の数と種類は静的にあなたはおそらくタプル要素にアクセスする可能性が知られているので、直接操作を実行します。 一方、fhlistにマップする関数が非常に一般的で、すべての要素を受け入れる場合- 質問3:なぜそれを使用しないのproductIterator.mapですか?わかりました、興味深いオーバーロードの1つは、メソッドのオーバーロードにf起因する可能性がありますf。複数のオーバーロードがあった場合、(productIteratorとは対照的に)hlistによって提供されるより強力な型情報があると、コンパイラはより具体的なを選択できます。ただし、メソッドと関数は同じではないため、Scalaで実際に機能するかどうかはわかりません。 HListとユーザー入力 同じ前提に基づいて、つまり、要素の数とタイプを静的に知る必要があるということ- 質問4:要素が何らかのユーザーの操作に依存している状況でhlistを使用できますか?たとえば、hlistにループ内の要素を入力することを想像してください。要素は、特定の条件が満たされるまでどこか(UI、構成ファイル、アクターの相互作用、ネットワーク)から読み取られます。hlistのタイプは何ですか?インターフェース仕様getElements:HList [...]と同様に、静的に不明な長さのリストを処理し、システム内のコンポーネントAがコンポーネントBから任意の要素のそのようなリストを取得できるようにします。
144 scala  types  tuples  hlist  shapeless 

4
Scalaで「type」キーワードが何をするかを理解する
私はScalaを初めて使用するので、typeキーワードについて多くを見つけることができませんでした。次の表現の意味を理解しようとしています。 type FunctorType = (LocalDate, HolidayCalendar, Int, Boolean) => LocalDate FunctorType ある種のエイリアスですが、それは何を意味していますか?
144 scala  types 

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