初心者のためのScalaガイド

紹介

Scalaは、スイスのÉcole Polytechnique Fédérale de Lausanne (EPFL)で教鞭を持つドイツのコンピュータサイエンティストである<Martin Oderskyによって設計された。Martinは2001年にScalaの創作に取り組み、2004年に最初のリリースを行った。

ScalaはScalable Languageの略であり、Javaプログラミング言語との共通点を持つ汎用のオブジェクト指向言語であり、関数型プログラミングのサポートを提供する。Scalaの設計上の多くの決定は、Javaプログラミング言語の欠点を解決することを目的としていた。

Scalaが提供するいくつかの機能には以下のようなものが含まれます:

  • ScalaのソースコードはJavaのバイトコードにコンパイルでき、したがってJava仮想マシン(JVM)上で実行可能である。

  • Javaとの言語間の相互運用性を提供し、どちらの言語で書かれたライブラリもScalaまたはJavaのコードベースで参照できる。

  • Javaと同様に、Scalaも波括弧を使用した構文を使用する。

  • スキーム、Standard Machine Learning、Haskellなどの関数型プログラミング言語の多くの機能を持っていて、カリング、型推論、不変性、遅延評価、パターンマッチングを含む。

  • JavaScriptを使用したWebアプリケーションのサポート。

  • Javaとは異なり、Scalaはオペレータオーバーロード、任意のパラメータ、名前付きパラメータ、および生の文字列をサポートします。

Scalaに関する魅力的な事実は、Apple、Twitter、Walmart、Googleなどの会社によって幅広く使用されています。これは伸縮性と、バックエンド操作に使用できる能力によるものです。

ScalaをJupyter Notebookに設定する

Jupyter notebookは、计算机科学において特にデータ科学分野で最も一般的に使用されているツールです。また、spylon-kernelの助けを借りたりしてScala開発にもサポートしています。

: Jupyter notebookに初めてとなる人々にとって、この詳細なチュートリアルをご確認ください。

Jupyter notebookでScala環境を設定するのは、ロケット科学にならないことです。ですので、数々のステップで素早く設定しましょう。

  • まず、spylon-kernelをインストールします。

    pip install spylon-kernel (Python 2)
    pip3 install spylon-kernel (Python 3)

  • 次に、Jupyter Notebookでscala-kernelを選択可能にするカーネル仕様を作成します。

    python -m spylon_kernel install (Python 2)
    python3 -m spylon_kernel install (Python 3)

  • そして、重要な手順として、spylon-kernelが一部のsparkコンポーネントもインストールするため、pysparkfindsparkをインストールします。

    pip install pyspark findspark (Python 2)
    pip3 install pyspark findspark (Python 3)

  • 最後に、jupyter notebookを起動し、kernelをspylon-kernelとして選択してください。それで準備完了です!

  • Scala kernelが正しく設定されたかどうかを確認するために、小さいコード片を実行してみましょう。
val x = 2 val y = 3 x*y
x: Int = 2 y: Int = 3 res1: Int = 6

おお、上記の出力からわかるように、jupyter notebookでScala環境を設定することに成功しました。

基本構文

ScalaでHello, World!を表示することから始めましょう。

print("Hello, World!")
Hello, World!

ご覧の通り、単純なprintコマンドに引数として入力を続けるだけです。

次に、Scalaでの構文に関するいくつかの詳細を見ていきましょう。

  • Scalaは大文字小文字を区別するので、識別子DataCampdataCampはScalaで異なる意味を持つことになります。

  • Scalaでは、クラス名の最初の文字を大文字にする必要があります。複数の単語を結合してクラス名を作成する場合、各単語の最初の文字を大文字にします。例えば、class MyScalaDataCampTutorialのようになります。

  • スカラのメソッド名は、クラス名と区別するためにメソッド名クラス名を区別するように、やや異なる動作をする。メソッド名は小文字の文字で始まる必要があり(Source)。複数の単語がメソッド名を形成する場合、各内部単語の最初の文字は大文字でなければならない。例えば、def firstDatacampScalaTutorial()

  • Scalaでは、プログラムファイルの名前はオブジェクト名と完全に一致している必要があります。ファイルを保存する際には、オブジェクト名を使用し、名前の末尾に.scalaを追加する必要があります。たとえば、オブジェクト名がScalaTutorialの場合、ファイルはScalaTutorial.scalaとして保存する必要があります。

    注意:ファイル名とオブジェクト名が一致しない場合、プログラムはコンパイルすらされません。

  • 最後に、ほとんどのプログラミング言語の機能と同様に、Scalaプログラムの処理もmain()メソッドから始まります。これはすべてのScalaプログラムにおいて重要な部分です。

下の図は、定数や変数、その他の識別子として使用できないScalaの予約語を示しています。

(Source)

データ型

スカラのデータ型は、C、C++、Java、Pythonなどの他の多くのプログラミング言語と同じで、メモリーフットプリントと精度に類似しています。

最後に、スカラに存在するいくつかのデータ型を見ていきましょう:

  • Int: 32ビットの符号付き(正の値と負の値の両方を取ることができます)の値で、範囲は$2^{-31}$から$2^{31} – 1$です

  • Byte: 8ビットの符号付きの値で、範囲は$2^{-7}$から$2^{7} – 1$です

  • Short: 16ビットの符号付きの値で、範囲は$2^{-15}$から$2^{15} – 1$です

  • Long: 64ビットの符号付きの値で、範囲は$2^{-63}$から$2^{63} – 1$です

  • Float: 32ビット(単精度浮動小数点)と64ビット(倍精度浮動小数点)の両方があります

  • Char: 16ビットの符号なし(正の値のみを取ることができます)のUnicode文字です。

他のデータ型には文字列論理値Nullなどがあります。

結論

このチュートリアルを完了したことに祝贺します。

Scalaを学ぶ初心者には良い出発点です。

さらに学びたい場合は、DataCampのScalaチュートリアルを参照してください:

Scalaでの関数とメソッドの基礎

ScalaでのIF ELSE

Scalaでの演算子

Scalaでのリスト

Scalaに関する情報は、if/else、forループ、Scalaの様々な演算子など、未来のチュートリアルで解説される内容が多くありますので、引き続き注目してください!

参照:

このチュートリアルに関する質問は、下のコメント欄でお気軽にどうぞ。

Source:
https://www.datacamp.com/tutorial/beginners-guide-to-scala