update.はじめに猿でも分かるScala!シリーズとして本記事ではScalaにおける型について基本的な事項を紹介していきます。紹介する項目は主に次のものです。クラスとしての型SymbolとStringの相違BigDecimal数値と文字列の相互変更Scalaでの型の扱いにはJavaと異なる部分があります。型がクラスとして扱われたり、BigDecimalの演算がJavaよりも直感的になったりする特徴があります。以下ではこのようなScalaの型に関する特徴を紹介します。double等)に相当する型は存在せず、全てクラスとなっています。Javaのプリミティブ型に相当する型は、Scalaの全ての親クラスであるAnyクラスを継承したAnyValクラスのサブクラスになっています。BigDecimalはAnyRefに所属します)。Scalaの型にはどのようなものがあるのか確認してみましょう。下の表を見るとScalaの型はJavaとほとんど変わらないことがわかると思います(SymbolはScala特有です)。AnyRefここでnビットは2^n種類の値を保存できることを示しています。8ビット符号付き整数値のときは256個の整数を-128から127まで変数に保持できることをしましています。JavaとScalaでは変数の宣言や初期化の方法が異なっています。0のように初期化します。100のようにします。型推論の機能を持ってることです。これによって型名を明記せず初期化をすることが可能です。Double型とされます。varで変数を宣言したときに「_」(アンダースコア)を指定した場合の初期値です。_の場合、変数が0で初期化されます。同じシンボルリテラルを複数書いても全く同一のSymbolオブジェクトを参照します。str2を定義します。falseと返ってきます。BigDecimalBigDecimalは任意精度の固定小数点数です。10進法演算を行います。わかりやすく言うと、小数点以下も可能な限り丸めたりせず正確に表示します。BigDecimalの変数の生成は、例えば次のようになります。BigDecimal(1.005)四則演算もInt型やDouble型の変数と同様に実行することができます。num2の四則演算はScalaのように直感的ではありません。和を計算するのにnum1.add(num1)のように書きます。ScalaのBigDecimalは通常の四則演算と同じ感じで計算できるので便利です。有効数字の桁数指定や四捨五入、切り捨て、切り上げは次のようにsetScale()メソッドにより可能です。num2に対して小数点以下4桁を表示、5桁目を四捨五入、切り上げ、切り捨てするには上から順に次のような文になります。scala.math.BigDecimal.RoundingMode.FLOOR)数値と文字列の相互変更データの型をString型に変換するためにはtoString()メソッドを使って次のように簡単に書けます。x.toString変数xの型はString以外のどの型でも可能です。今度は文字列から各データ型への変換をみてみます。xStrで定義されていたとします。このとき変数の型に合わせて変換は次のようになります。xStr.toDoubleここでcharAt(n)はxStrのCharシークエンスを左から数えてn-1番目をChar型にするという意味です。まとめここまでScalaの型について紹介してきました。Scalaの基本的な型の種類はJavaと同一ですが、型がクラスとして扱われる点がJavaとことなる点でした。型はAnyクラスの子クラスであるAnyRefまたはAnyValに所属することも見てきました。BigDecimalはJavaよりも直感的に操作できることを紹介しました。Scalaでは文字列への変換が簡単にできる等の特徴も紹介してきました。upLoginユーザーは見つかりませんでした。