scala02.scalaベース

2965 ワード

2.1宣言値と変数
val定義の値は定数に似ています.varが宣言する変数は可変です.
2.2一般的なタイプ
Scalaには、Byte、Char、Short、Int、Long、Float、Double、Booleanの8種類のデータ型があります.
Scalaは基本タイプと参照タイプを区別しないので、これらのタイプはすべてオブジェクトであり、対応するメソッドを呼び出すことができます.
Stringはjavaを直接使用しています.lang.String.Stringは、必要に応じて暗黙的にStringOpsに変換することができる.
各データ型には、Javaの強制型変換とは異なり、RichInt、RichCharなどの対応するRich*型がScalaでメソッドによってタイプ変換されます.
Scalaでは、すべての値がクラスオブジェクトであり、すべてのクラス(値タイプを含む)は、最終的に統一されたルートタイプAnyから継承されます.
1)Nullはすべての参照タイプのサブタイプであり、Nullクラスにはインスタンスオブジェクトが1つしかありません.null 2)Nothing、Nothingはすべてのタイプのサブタイプです.正常な戻り値がないメソッドとしての戻りタイプ3)UnitタイプはJavaのvoidに似ている.Unitには1つのインスタンスしかありません.()、このインスタンスにも実質的な意味はありません.
2.3算術とオペレータの再ロード
scalaの演算子はメソッド注意です.Scalaには++、--オペレータはありません.+=、-=を使用する必要があります.
2.4呼び出し関数とメソッド
呼び出し関数:関数パッケージimportパッケージ名を導入する必要があります._はワイルドカードで、javaの*呼び出し静的メソッドと同じです.Scalaには静的メソッドはなく、単一のオブジェクトまたは伴生オブジェクトによって実現されます.≪オブジェクト・メソッドの呼び出し|Call Object Method|emdw≫:オブジェクト・インスタンスの呼び出し方法
2.5 apply、updateメソッド
apply法は、要素Array(1,2,3)をArrayと同等に構築する取得するためのものである.apply(1,2,3)updateメソッドは要素の更新に用いられ、arr(4)=5はarr.update(4,5)に等しい
2.6 optionタイプ
Scalaは、オブジェクトのパッケージを単一の値に提供し、存在する可能性も存在しない可能性もある値を示します.一つはSomeで、ある値を表し、もう一つはNoneで、空を表し、Optionで使用します.
import org.scalatest.FunSuite

//      FunSuite
class Chapter01Test extends FunSuite {

  test("ch0101") {
    //var               
    var index: Int = 1
    index = index + 1
    println(index)
    //val                 
    val PI: Double = 3.14
    println(PI)
    //        
    var i, j = 0
    println(i + j)
    var str1, str2 = null
  }

  test("ch0102") {
    //             
    var str: String = 1.toString
    println(str)
    //                     
    var money: Double = 90.11.toInt
    println(money)
    var hello: String = "hello"
    //string     StringOps
    println(hello.intersect("world"))
  }

  test("ch0103") {
    //scala   ++ --  
    var count: Int = 1
    count += 1
    println(count)
    //scala  bigInt bigDecimal  
    var x: BigInt = 123456
    println(x * x * x)
  }

  test("ch0104") {
    //                      
    import scala.math._
    println(sqrt(4))
    //  static          
    BigInt.probablePrime(100, scala.util.Random)
    //               
    var str: String = "Hello World"
    println(str.toLowerCase)

  }

  test("ch0105") {
    //      
    var array = Array(1, 2, 3)
    //  apply                    
    var array2 = Array.apply(1, 2, 3)
    //       
    array(0) = 4
    //  update       
    array2.update(0, 4)
    //apply       update    
    println(array.toString)
    println(array2.toString)
  }

  test("ch0106") {
    //     Option   2       some    none
    //              
    var scores = Map("jim" -> 1, "Green" -> 2)
    scores.get("jim") match {
      case Some(score) => println(score)
      case None => println("no score")
    }
  }


}