scala_パッケージ


1冊の本scalaプログラミング言語を推薦して、電子版があって、比較的に厚いです.
パッケージ(package com.xx.data)
  • はネストをサポートし、下層は上層の役割ドメインの名前
  • にアクセスできる.
  • 直列
  • トップマーク
  • パッケージオブジェクト
  • パケット可視性
  • パケットは、文が存在するブロックの末尾
  • に作用ドメインを導入することができる.
  • 名前変更導入メンバー(xx=>yy)
  • 非表示方法(xx=>)
  • 自動導入(java.lang._scala._Predef.)
  • /**
     * play
     *    ,               
     * package com.chinahadoop{
     *
     *  package  spark{
     * }
     *     
     * package b
     *     
     *     
     *        
     * import java.util.{hashMap => JavaHashMap}
     *            
     * hashMap=>_
     *      
     * java.lang._ scala._ Predef._
     * _          *  
     *           ,    
     * package aa.bb.cc.dd
     * class xxx{
     * private[dd] adadad= {
     * 
     * }
     * }
     *  }
     */

    パターンマッチング
    標準用法(match)
    ガードの使用
    照合タイプ
    package cn.chinahadoop.scala
    class Basic5 {
    }
    object Basic5 extends App {
      val value = 1
      //match      
      val result = value match {
        case 1 => "one"
        case 2 => "two"
        case _ => "some other number"
      }
      println("result of match  is :" + result)
    }

    結果:
    result of match  is :one

    scalaは,一致すると判断すれば下へ実行し続けることはなく,breakやreturnは必要ない.
    package cn.chinahadoop.scala
    class Basic5 {
    }
    object Basic5 extends App {
      val value = 3
      //match      
      val result = value match {
        case 1 => "one"
        case 2 => "two"
        case _ => "some other number"
      }
      println("result of match  is :" + result)
    }

    結果:
    result of match  is :some other number

    _ワイルドカードを表します.
    package cn.chinahadoop.scala
    class Basic5 {
    }
    object Basic5 extends App {
      //  val value = 3
      //  //match      
      //  val result = value match {
      //    case 1 => "one"
      //    case 2 => "two"
      //    case _ => "some other number"
      //  }
      //  println("result of match  is :" + result)
      val value = 3
      val result = value match {
        case i if i == 1 => "one"
        case i if i == 2 => "two"
        case _ => "some other number"
      }
      println("result of match is : " + result)
    }

    結果:
    result of match is : some other number

    ケースはタイプをマッチングすることもできます
    package cn.chinahadoop.scala
    class Basic5 {
    }
    object Basic5 extends App {
      //  val value = 3
      //  //match      
      //  val result = value match {
      //    case 1 => "one"
      //    case 2 => "two"
      //    case _ => "some other number"
      //  }
      //  println("result of match  is :" + result)
      //  val value = 3
      //  val result = value match {
      //    case i if i == 1 => "one"
      //    case i if i == 2 => "two"
      //    case _ => "some other number"
      //
      //  }
      //  println("result of match is : " + result)
      def t(obj: Any) = obj match {
        case x: Int => println("Int")
        case s: String => println("String")
        case _ => println("unknown type")
      }
      t(1)
    }

    結果:
    Int
    package cn.chinahadoop.scala
    class Basic5 {
    }
    object Basic5 extends App {
      //  val value = 3
      //  //match      
      //  val result = value match {
      //    case 1 => "one"
      //    case 2 => "two"
      //    case _ => "some other number"
      //  }
      //  println("result of match  is :" + result)
      //  val value = 3
      //  val result = value match {
      //    case i if i == 1 => "one"
      //    case i if i == 2 => "two"
      //    case _ => "some other number"
      //
      //  }
      //  println("result of match is : " + result)
      def t(obj: Any) = obj match {
        case x: Int => println("Int")
        case s: String => println("String")
        case _ => println("unknown type")
      }
      // t(1)
      t("1")
    }

    結果:
    String
    package cn.chinahadoop.scala
    class Basic5 {
    }
    object Basic5 extends App {
      //  val value = 3
      //  //match      
      //  val result = value match {
      //    case 1 => "one"
      //    case 2 => "two"
      //    case _ => "some other number"
      //  }
      //  println("result of match  is :" + result)
      //  val value = 3
      //  val result = value match {
      //    case i if i == 1 => "one"
      //    case i if i == 2 => "two"
      //    case _ => "some other number"
      //
      //  }
      //  println("result of match is : " + result)
      def t(obj: Any) = obj match {
        case x: Int => println("Int")
        case s: String => println("String")
        case _ => println("unknown type")
      }
      // t(1)
     // t("1")
      t(1L)
    }

    結果:
    unknown type

    本文は“陳生龍”のブログから出て、転載をお断りします!