9.1 scala介绍与安装

Scala是一种针对 JVM 将函数和面向对象技术组合在一起的编 程语言。
它看 起来像是一种纯粹的面向对象编程语言,而又无缝地结合了 命令式和函数式的编程风格
Scala的名称表明,它还是一种 高度可伸缩的语言
Scala的设计始终贯穿着一个理念:创造 一种更好地支持组件的语言
Scala融汇了许多前所未有的特 性,而同时又运行于 JVM之上
Scala特点:
Scala可拓展
– 面向对象
函数式编程
兼容JAVA
– 类库调用
– 互操作
– 语法简洁
代码行短
– 类型推断
– 抽象控制
– 静态类型化
– 可检验
– 安全重构
支持并发控制
– 强计算能力
– 自定义其他控制结构
scala环境安装
scala-2.10.4.msi -->相当于Javajdk windows环境直接安装,注意需要提前安装好jdk1.7,和安装路径不要有中文和空格
要是安装正确,环境变量自动配置好了
验证:

声明与定义(赋值):
val,常量声明 不能重新赋值
var,变量声明 和Java的变量一致
def,函数声明
s:拼接字符串
val name = "James“ val age = 22
println(s"Hello, $name")
println(s"$name is ${age + 2} years old.")
f:类型转换
val height = 1.9
println(f"$name%s is $height%.2f meters tail")
r:相当于正则
r”a\nb” 对比 raw”a\nb”
implicit 隐式转换和隐式参数使用
var t = List(1,2,3,5,5) list集合
println(t. map( x => {x+2})) map对集合里面的每个元素进行操作,有返回值,这里返回一个新的List
t. foreach(a=>print("---+++"+a)) foreach遍历
println("/--***---"+t. distinct) distinct去重复
println(t. sortBy{ x => -x }) sortBy自定义排序
println("---+**Slice"+t. slice(0, 2)) slice切割获取区间
println(t. reduce( (a,b) => a+b )) reduce就是对集合里面的每个元素依次进行操作
println(t. filter ( _ > 3 )) filter 过滤
println(t. take(3)) take取前几个
t. foldLeft(0) 带参数的reduce
var tuple01 = (1,2,3,5) 元组 下标从1开始

经典例子:
object test {
  
  def sum(f : Int => Int):(Int,Int)=>Int={
    def sumF(a : Int,b : Int):Int =
      if(a>b) 0 else f(a) + sumF(a+1 , b)
     sumF
  }
//遍历
  def test()={
    for(a <- 1 to 100){
      println(a)
    }
  }
//多个参数累加
  def sum(elem : Int*)={
    var temp=0
    for(e<-elem){
      temp += e
    }
    println(temp)
  }
// => 匿名函数声明方式
val t = ()=>{333;"xururyun"}//声明了一个函数对象付给了t
  def main(args: Array[String]): Unit = {
// val a = sum(x=>x)
// println(a(2,3))
// test()
    sum(1,2,3)
    sum(1 to 5 :_*)
  }
}


猜你喜欢

转载自blog.csdn.net/u011418530/article/details/81025537
9.1