文章出處

package yjmyzz

import java.io.PrintWriter
import java.util.Date

import scala.io.Source


object ScalaApp02 {

  def main(args: Array[String]) {
    tupleDemo
    println
    mapDemo
    println
    arrayDemo
    println
    fileWriteAndRead
    println(getUrlContent("http://www.cnblogs.com/yjmyzz/"))

  }

  /**
   * 元組示例
   */
  def tupleDemo = {
    //val表示常量(相當于JAVA中的final),var表示變量
    val tuple = ("jimmy", 100, new Date()) //這寫法比c#里的Tuple<T>還簡潔
    //打印第1,2,3個元素,注意元組下標是從1開始的
    println(tuple._1)
    println(tuple._2)
    println(tuple._3)
  }

  /**
   * 數組示例
   */
  def arrayDemo = {
    var myArr = Array(5, 4, 3, 2, 1) //注意:這里不需要new關鍵字
    for (i <- myArr) println(i)
    println
    //找出myArr中的偶數
    var even = myArr.filter(i => i % 2 == 0) //這語法的簡潔性,快趕上C#的LINQ了
    for (i <- even) println(i)
    println
    scala.util.Sorting.quickSort(even) //排序
    for (i <- even) println(i)
  }

  //Map示例
  def mapDemo = {
    var myMap = Map(("jimmy", 1), ("Mike", 2), ("John", 3));
    //遍歷
    for ((k, v) <- myMap) {
      println("key:" + k + "\t,value=" + v);
    }
    println
    println("all keys => ")
    //遍歷key
    for (k <- myMap.keys) {
      println(k)
    }
    println
    //遍歷value
    println("all values => ")
    for (v <- myMap.values) {
      println(v)
    }
    println
    //遍歷key和value,還有一種寫法(利用占位符號"_")
    println("all keys => ")
    for ((k, _) <- myMap) println(k)
    println
    println("all values => ")
    for ((_, v) <- myMap) println(v)
  }


  /**
   * 文件讀寫示例
   */
  def fileWriteAndRead = {
    val fileName = "scalaTest.txt"

    //寫文件
    var writer = new PrintWriter(fileName)
    writer.write("hello scala\n")
    writer.write("hello spark")
    writer.close()

    //讀文件
    var fileContent = Source.fromFile(fileName);
    println(fileContent.mkString)

  }

  /**
   * 獲取網頁內容
   * @param url
   * @return
   */
  def getUrlContent(url: String): String = {
    Source.fromURL(url).mkString
  }


}

從上面的示例代碼可以看出,scala有極強的類型推導能力,大多數情況下,不用指定變量類型,編譯器能根據變量的值正確推導出變量類型,這一點豪不遜色于c#


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()