读书人

Scala根本语法

发布时间: 2013-11-08 17:52:32 作者: rapoo

Scala基本语法
C:\Program Files\scala\bin>scala -versionScala code runner version 2.10.3 -- Copyright 2002-2013, LAMP/EPFL

基本类型及操作

import scala.collection.mutable.Setimport scala.collection.immutable.HashSetimport scala.collection.mutable.Mapobject Hello {//函数def max(x: Int, y: Int): Int = {if(x > y) xelse y}//循环:while / for / foreach三种方式def loop(args: Array[String]) {         var i = 0          while(i < args.length) {                  println(args(i))                  i = i + 1          }    /*        for(i <- 0 until args.length) {                  println(args(i))          }          args.foreach { arg =>                  println(arg)          }*/}//数组def useArray(){val greetStrings = new Array[String](3)//不推荐这种创建数组方法greetStrings(0) = "Hello"greetStrings(1) = ", "greetStrings(2) = "world!\n"greetStrings.update(0, "Hi")//同上greetStrings.update(1, ", ")greetStrings.update(2, "world!\n")greetStrings(0) = "Hey"for (i <- 0 to 2)print(greetStrings(i))val betterStrings = Array("Hello",", ","World\n")//推荐此类用法}//列def useList(){val oneTwo = List(1, 2)val twoThree = List(2, 3)val oneTwoThree = 1 :: twoThree //拼接元素和数组val oneTwoThreeFour = oneTwo ::: twoThree //拼接数组和数组val thrill = "Will" :: "fill" :: "until" :: Nilprintln(thrill) // List(Will, fill, until)thrill.drop(2)  //Untilthrill(2) //Untilthrill.dropRight(2) //Willthrill.count(s => s.length == 4) // return 2thrill.exists(s => s == "until") // truethrill.filter(s => s.length == 4) // List("Will", "fill")//thrill.remove(s => s.length == 4) // List("until")thrill.forall(s => s.endsWith("l")) // true (all endwith l)thrill.head // Willthrill.init // return all without last List("Will", "fill")thrill.tail // return all without first List("fill", "until")thrill.length // 3thrill.last // untilthrill.isEmpty // falsethrill.map(s => s + "y") // List("Willy", "filly", "untily")thrill.mkString(", ") // "Will, fill, until"thrill.reverse // List("until", "fill", "Will")//thrill.sort((s, t) => s.charAt(0).toLowerCase < t.charAt(0).toLowerCase) // List("fill", "until", "Will") 编译有错}//关联数组def useOther(){//tuple 可以存放不同类型val pair = (99, "Luftballons")println(pair._1)println(pair._2)//setsval movieSet = Set("Hitch", "Poltergeist")movieSet += "Shrek"println(movieSet)//hashsetval hashSet = HashSet("Tomatoes", "Chilies")println(hashSet + "Coriander")//mapval treasureMap = Map[Int, String]()treasureMap += (1 -> "Go to island.")treasureMap += (2 -> "Find big X on ground.")treasureMap += (3 -> "Dig.")println(treasureMap(2))}def main(args: Array[String]): Unit = {//变量|常量var msg1 = "message one" //scala自动匹配类型var msg2 : java.lang.String = "message two" //scala指定类型var msg3 : String = "message three" //可以直接引用java.lang包msg1 = "message one changed"val c_msg1 = "constant message one"//c_msg1 = "constant message one cann't be changed"//使用java类val big = new java.math.BigInteger("12345")loop(args)println(max(3,4))useArray()useList()useOther()}}

?类,单例(需要编译运行scalac scala)

class Tool {def max(x: Int, y: Int): Int = {if(x > y) xelse y}}object Tool2{def min(x: Int, y: Int): Int = {if(x < y) xelse y}}object Hello {//函数def main(args: Array[String]): Unit = {println("hello")val t = new Tool()println(t.max(3,4))println(Tool2.min(3,4))}}

?

读书人网 >编程

热点推荐