Scala基礎文法(一)
3818 ワード
1.変数val/var
1.1変数を定義するキーワード
1.2宣言と付与の同時定義
2.メソッドdef
2.1形式:
2.2プロセスメソッドの戻りタイプがUnitの場合をプロセスと呼ぶ(推奨しない)
2.3メソッドが非再帰メソッドの場合、戻りタイプは省略できます
2.4メソッド呼び出しメソッド名(args)
eg:
2.5可変パラメータリスト
3.データ型
クラス階層:
AnyValには次のものがあります.
AnyRefには次のものがあります.
4.クラスclass
4.1フォーマット:
eg:
4.2コンストラクタ:
マスターコンストラクタ:
クラスの定義と織りなす
補助コンストラクタ:
4.3マスターコンストラクタパラメータリスト
形式:
まとめ:
5.オブジェクトobject単例オブジェクト
書式:
まとめ:クラス内のメソッドとフィールドは非静的です.オブジェクトのメソッドとフィールドは静的です.
プログラムエントリ
1.Mainメソッド
2.拡張App
準備:
コンパイルコマンド:
現在のディレクトリの表示:ls
逆コンパイルツールを使用してTestMain 1を開きます.class
コマンドの実行:
6.特質trait
書式:
まとめ:
7.タイプtype
書式:
まとめ:
val/var : =
1.1変数を定義するキーワード
val
var
1.2宣言と付与の同時定義
var , , _
eg: var str:String=_
2.メソッドdef
2.1形式:
[ ] def methodName(name1:ArgsType1,name2:ArgsType2)[:retrunType]={
//
}
2.2プロセスメソッドの戻りタイプがUnitの場合をプロセスと呼ぶ(推奨しない)
eg:
def test1(a:Int):Unit={}
----> :
def test1(a:Int){}
2.3メソッドが非再帰メソッドの場合、戻りタイプは省略できます
def test(a:Int)={
a
}
eg: , 。
def fac(a:Int):Int={
a*fac(a-1)
}
2.4メソッド呼び出しメソッド名(args)
1. , : ()
2. , 。
eg:
def info(a:Int,b:Int,c:Int)={
a+b+c
}
// :
info(1,2,3)
info(a=1,c=3,b=2)
// : , , 。
info(b=2,a=1,6) //
info(b=2,6,a=1) // a,b , c , c 。
2.5可変パラメータリスト
1.
2. : *
3. 。
def test(a:Int,b:String,c:Any*)={
println(c)
}
3.データ型
8 +Unit
Unit <===> ()
クラス階層:
Any( , )
AnyVal AnyRef( Java Object)
8 +Unit
Nothing( , )
AnyValには次のものがあります.
( Scala )
Byte Int Short Long Char Boolean Float Double + Unit
AnyRefには次のものがあります.
String(java.lang) ...
4.クラスclass
4.1フォーマット:
class private[package] ( ) extends / with 1 with 2{}
eg:
class Student(name:String,age:Int) extends Father with T1 with T2{
//
//
//
println(".....")
def this()={
//.......
}
}
4.2コンストラクタ:
マスターコンストラクタ:
クラスの定義と織りなす
補助コンストラクタ:
1. this
2.
4.3マスターコンストラクタパラメータリスト
形式:
1. :
2.var :
3.val :
4.private val/var :
5.@BeanProperty val/var :
まとめ:
1. , , 。
2. val , private / , 。
3. var , private / , _= 。
4. 2,3 , 。
5.@BeanProperty javaBean set/get
5.オブジェクトobject単例オブジェクト
書式:
object extends / with 1 with 2{}
まとめ:クラス内のメソッドとフィールドは非静的です.オブジェクトのメソッドとフィールドは静的です.
プログラムエントリ
1.Mainメソッド
object TestMain1{
//
def main(args:Array[String]):Unit={}
}
TestMain1.scala 。
2.拡張App
object TestMain2 extends App{
//......
}
TestMain2.scala 。
準備:
mkdir scala/day1
vi TestMain1.scala
コンパイルコマンド:
scalac TestMain1.scala
現在のディレクトリの表示:ls
逆コンパイルツールを使用してTestMain 1を開きます.class
scalap TestMain1
javap -p TestMain1
コマンドの実行:
scala TestMain1
6.特質trait
書式:
trait extends / with 1 {}
まとめ:
1. /
2. /
3. / / / ( )
7.タイプtype
書式:
type =
まとめ:
1. , , 。
2. , 。