scala教程 http://twitter.github.io/scala_school/zh_cn/index.html
API文档: http://www.scala-lang.org/api/current/#package
一、脚本运行
进入Spark/bin目录下,启动spark-shell脚本,进入scala编译环境
简单测试,输入1+1
输入println("hello")
1、for循环
1.1 for(i <-0 to j):包含j
0+1+2=3
1.2 for(i <-0 until j):不包含j
0+1=1
1.3 for循环遍历list列表
2、Map
val colors1 = Map("red" -> "红色",
"black" -> "黑色",
"pink" -> "粉红色"
)
val colors2 = Map("blue" -> "蓝色",
"yellow" -> "黄色",
"red" -> "红色"
)
1.1 def ++(xs: Map[(A, B)]): Map[A, B]
连接两个 Map,Map 合并时会移除重复的 key。
val colors =colors1.++(colors2 );
println(colors )
重复的red->红色被移除了一个
1.2 def -(elem1: A, elem2: A, elems: A*): Map[A, B]
移除key为elem1,elem2等元素
val colors =colors1.-("black");
println(colors )
1.3 abstract def +=(kv: (A, B)): Map.this.type 向map中田间键值对
Adds a new key/value pair to this map.
二、编译器中运行
下载scala的eclipse编辑器
新建scala工程,新建scala对象。
运行scala文件,输出结果“Hello world”
def main(args: Array[String]) - Scala程序从main()方法开始处理,这是每一个Scala程序的强制程序入口部分。
- 包的引用
import java.awt.Color // 引入Color
import java.awt._ // 引入包内所有成员
import java.awt.{Color, Font}//引入包中部分成员
import java.util.{HashMap => JavaHashMap}// 重命名成员
import java.util.{HashMap => _, _} // 引入了util包的所有成员,但是HashMap被隐藏了
- 方法的定义
/**
* 方法的定义,返回值Int
*/
def addInt(a: Int, b: Int): Int = {
var sum: Int = 0;
sum = a + b;
return sum;
}
/**
* 方法的定义,没有返回值
*/
def printlnStr(): Unit = {
println("hi boy");
}
- APP
继承APP之后,会调用APP默认的main函数,不用再重写
object HelloWord extends App{
println("Hello, world! 123")
}
/**输出结果
*Hello, world! 123
/
val executionStart: Long
The time when the execution of this program started, 程序执行的开始时间
object HelloWord extends App{
var time = this.executionStart
println("time="+time)
}
//输出结果 time=1471834954153
def reverse: Array[T]
Returns new mutable indexed sequence with elements in reversed order.对数组进行倒序
val numbers = Array(1, 2, 3, 4)
val reverseList = numbers.reverse;
println("reverseList(0)="+reverseList(0))
println("reverseList(1)="+reverseList(1))
println("reverseList(2)="+reverseList(2))
println("reverseList(3)="+reverseList(3))
/**输出结果
reverseList(0)=4
reverseList(1)=3
reverseList(2)=2
reverseList(3)=1
*/
数组遍历:
for (i <- 0 until list3.length) {//表示i从0 到length-1
println(list3(i));
}
/**
i <-区间
*/