【Scala】環境設定からScala言語入門
・環境構築
・JDKインストール(詳しい説明は割愛)
・Scalaインストール
https://www.scala-lang.org/download/
・IDE
Configure⇒Plugins⇒BrowseRepositoriesで「scala」を検索してInstallする。
IntelliJを再起動したらScalaの新規プロジェクトを作成できるようになる。
・Hello, World!
package scala
object HelloWorld{
def main(args: Array[String]): Unit ={
println("Hello, world!")
}
}
右クリックしてRun
結果が出力される。
・基本文法
・ソースファイル名:*.scala
・小文字と大文字が区別される。
・クラスの頭文字が大文字。
・クラス名がファイル名と一致させる。(推奨)
・メソッドの頭文字が小文字。
・キーワード(50個)
abstract | case | catch | class |
def | do | else | extends |
false | final | finally | for |
forSome | if | implicit | import |
lazy | match | new | null |
object | override | package | private |
protected | return | sealed | super |
this | throw | trait | try |
true | type | val | var |
while | with | yield | |
- | : | = | => |
<- | <: | <% | >: |
# | @ |
・データ型
・Byte
・Short
・Int
・Long
・Float
・Double
・Char
・String
・Boolean
・Unit:値無しを表す。voidと同等。
・Null
・Nothing:他クラスの子クラス。
・Any:他クラスの親クラス。
・AnyRef:レファレンスクラスの親クラス。
・リテラル
・int型:数字、数字L
・float型:小数、小数f
・bool型:true/false
・Symbol:'シンボル
・Char:'文字
・String:"文字列
・変数
var myVar : String = "Foo"
・定数
val myVal : String = "Bar"
・アクセス修飾子
・private:同じパッケージ内でアクセス可能。
・protected:同じクラス(子クラス含む)からアクセス可能。
・public:他のパッケージからもアクセス可能。
・フローコントロール
・if...else
・while/do...while/for
・メソッド
def functionName([refList]) : [return type] = {
function body
return[expression]
}
・文字列
・配列
・コレクション
・クラス
・Trait(特徴)
Javaのインターフェース+抽象クラスに相当する概念。
例)
trait Equal{
def isEqual(x: Any): Boolean
def isNotEqual(x: Any): Boolean = !isEqual(x)
}
・match
例)
def matchTest(x: Any): Any = x match {
case 1 => "one"
case "two" => 2
case y: Int => "scala.Int"
case _ => "many"
}
・正規表現
・エラーハンドリング
・Extractor