Scala 初学指南

特点

  • 功能强大
  • 表达能力强
  • 多范式(面向对象和函数式编程)
  • 运行在JVM平台上
  • 优雅
  • 速度快(开发速度快,运行速度快)
  • 能融合到Hadoop 平台。目前大数据库系统全部运行在JVM平台上
  • 可以无缝调用java API
  • 项目中的核心功能可以使用Scala开发,然后别人调用接口就可以
  • Scala 的编译器可以自动推断变量类型
  • 提供了 Scala shell

HelloScala

    /**
  * Created by 耀源 on 2016/10/28.
  */
object HelloScala {//object代表这是一个单例对象或者伴生对象
  //放置静态方法,静态变量,不需要new
  def main(args: Array[String]): Unit = {
    println("Hello Scala")//
  }
}

函数和方法的区别

  • 方法 def 定义。返回值可以由编译器自动推断,所以可以省略。但是递归函数不可以省略。
  • 函数定义方式
    • 匿名函数(x : Int,y : Int) => x+y
    • 普通函数 var add = (x: Int,y : Int) = > x + y 等价于 val add: (Int,Int) => Int = { (a,b)=>a+b }
    • val func : Int => String = { x => x.toString } 等价于 val func = (x: Int) => x.toString
    • val func = (x: Int,y Double) => (y,x) 返回值超过两个时可以使用元组的方式返回。
    • val func: (Int,Double) => (Double,Int) = { (a,b) => (b,a)}
  • 区别

    • 可以作为一个值传到方法里

      var r = 1 to 10
      val f1 = (x : Int) = x*10
      val f2 = (x : Int) = x+10
      
      r.map(f1)
      r.map(f2)
      r.map(_ * 100) // 匿名函数  
    • 方法调用函数

      val func = (x : Int,y : Int) => x+y
      
      def method1(f: (Int,Int) => Int) : Int = {
      f(2,6)
      }
      
      //放置静态方法,静态变量,不需要new
      def main(args: Array[String]): Unit = {
      println(method1(func))
      }

神奇的下划线

  • 将方法转换成函数
    def method(x: Int,y: Int): Int = x + y
    var func = methos _ //将一个方法变成了函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值