第二章 scala入门初探

原创 2015年11月19日 21:08:54

注意:Scala中,表达式后的分号可以省去(多个表达式写在同一行则还是需要分号的),但是Scala源码中都是带分号的,所以建议保留分号

  • 使用Scala解释器
    • 在Scala解释器中键入代码块可以采用命令::paste,以CTRL+D结束;
  • 变量定义
    • var声明的变量,可以在生命周期中被多次赋值 ;
    • val声明的变量,类似Java中final变量,一旦初始化,就不能再被赋值;
    • 变量最好写明类型,这会有便于之后的代码阅读(虽然Scala中有类型推断机制);
  • 函数定义

    • 定义函数用关键字def
    • 函数名
    • 参数列表,其中每个参数都必须带有前缀冒号的类型标注(编译器无法推断函数的参数类型)
    • 函数结果类型,例如(: Int)
    • 函数体,放在{}内
    def max(x: Int, y: Int): Int = {
      if(x > y) {
        x;
      } else {
        y;
      }
    }
  • 脚本
    使用命令scala可以编译.scala文件;
    命令行参数存放在名为args的Scala数组里,用args(0)访问第一个元素;

  • while做循环,if做判断

    var i = 0;
    while(i < args.length) {
      if(i != 0) {
      print(" ");
    }//(个人习惯)在代码块仅有一行语句时也用{}
      println(args(i));
      i += 1;
    }
    println();
  • foreach和for做枚举

    • 用foreach可以更简洁的打印每个命令行参数,这是一种更为函数式的编程风格。
      以下三种写法都表达同一个意思:
    • 第三种最简明的写法的条件是:函数字面量只有一行语句并指代一个参数,那么可以将指代参数省去。
      args.foreach(arg => println(arg));
      args.foreach((arg: String) => println(arg));
      args.foreach(println);

    • 函数自面量:

      1. 括号及命名参数列表 (x: Int, y: Int)
      2. 右箭头 =>
      3. 函数体 x + y;
        用for也可以写出简明的代码:
        for(arg <- args) {
          println(arg);
        }
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Scala学习笔记01【Scala入门初探】

1、Scala解释器的使用    下载地址:http://www.scala-lang.org/downloads.    Scala的交互式shell就叫做scala。命令提示符输入scala就行(...

Scala学习整理[第二章 入门Ⅰ]<Programming In Scala>

package SecondWithProgrammingInScala.Chapter2 /** * 使用scala解释器 类似于脚本编程 * 定义的变量和函数会暂存在解释器中(就像解释器是...

《C++Templates》第二章-初探函数模板

1、编写模板推荐使用typename关键字,const xiushif

第二章:初探Spring Cloud Eureka+Hystrix+Ribbon+Feign微服务搭建

凡是过去,皆为序章 通过自动配置和绑定到Spring环境和其他Spring编程模型的习惯方式来为Spring Boot应用程序提供Netflix OSS集成。通过几个简单的注释,您可以快速启用和配置应...

scala初探(一)

Scala语言是在JVM上编程的优秀语言之一,其为并发,表达式和可扩展性而设计。这门语言及其程序库可以让你专注于问题而无需深陷于线程和同步等底层基础结构细节。Scala是一门混合了函数式和面向对象的语...

Scala初探(二)

5. 单例模式 class Marker(val color: String){ //类中的任何代码段作为构造函数的一部分 println("Creating " + this) overri...

Scala初探(三)

11. curry化 def inject(arr:Array[Int],initial:Int)(operation: (Int,Int) => Int): Int ={ var carryOve...

Scala系列-2-初探HelloWorld例子

一时兴起函数式语言scala,那就开门见山,见识一下我的scala版得helloWorld吧!   1、配环境变量啥的我就不说了,下个scala的eclipse Plugins。地址htt...
  • wmq534
  • wmq534
  • 2014年08月06日 16:57
  • 498

fp in scala 第二章习题

开始看那本最经典的书了1斐波那契数列求第n个数 实现思想,斐波那契数列第n个数其实是n-1与n-2之和,那么递归的思路也相当清晰 判断是不是第0个数,是则直接输出0,否则递归调用,而控制递归次数则...

spark高级数据分析系列之第二章用 Scala 和 Spark 进行数据分析

2.1数据科学家的Scala spark是用scala语言编写的,使用scala语言进行大数据开发的好处有 1、性能开销小 减少不同环境下传递代码和数据的错误和性能开销 2、能用上最新的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第二章 scala入门初探
举报原因:
原因补充:

(最多只允许输入30个字)