Scala における明示的な型変換
2023-08-20 22:37:13
質問
次のようなコードがあるとします。
abstract class Animal
case class Dog(name:String) extends Animal
var foo:Animal = Dog("rover")
var bar:Dog = foo //ERROR!
このコードの最後の行はどのように修正すればいいのでしょうか? 基本的には、C言語的な言語であれば行われることを行いたいだけなのです。
var bar:Dog = (Dog) foo
どのように解決するのですか?
自分で考えてみました。 解決方法は2つあります。
1) 明示的なキャストを行う。
var bar:Dog = foo.asInstanceOf[Dog]
2) パターンマッチングでキャストする、これもエラーになる。
var bar:Dog = foo match {
case x:Dog => x
case _ => {
// Error handling code here
}
}
関連
-
[解決済み] Scalaのオブジェクトとクラスの違い
-
[解決済み】Scalaの型消去を回避するにはどうしたらいいですか?または、なぜ私のコレクションの型パラメータを取得することができないのですか?
-
[解決済み] Scalaのパターンマッチはなぜ変数で機能しないのですか?
-
[解決済み] private[this] vs private
-
[解決済み] Scalaです。ScalaのコレクションにおけるTraversableとIterableの違いは何ですか?
-
[解決済み] Scalaでimmutable.Mapをmutable.Mapに変換するにはどうしたらいいですか?
-
[解決済み] SBTのrunアクションでアプリケーションを実行するために、JVMの最大ヒープサイズを"-Xmx "で指定する方法は?
-
[解決済み] sbtのヒープサイズを設定するには?
-
[解決済み] Scalaの継続性とは何か、なぜ継続性を使うのか?
-
[解決済み] Scalaの複数パラメータリストと複数パラメータ/リストの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] scalaは推論される型の「許容される複雑さ」にどのような制限を設けているのでしょうか?
-
[解決済み] private[this] vs private
-
[解決済み] Scalaでmapを使用してインデックスを受け取るにはどうしたらいいですか?
-
[解決済み] Scalaにおけるval-mutableとvar-immutableの比較
-
[解決済み] 機能的デザインパターン【終了しました
-
[解決済み] SBTのrunアクションでアプリケーションを実行するために、JVMの最大ヒープサイズを"-Xmx "で指定する方法は?
-
[解決済み] sbtのヒープサイズを設定するには?
-
[解決済み] Scalaで関数を定義する3つの方法の違い
-
[解決済み] scalaのApp traitとmainメソッドの違いについて
-
[解決済み] Intellijのコンパイルに失敗する。"すでに次のように定義されています"