美文网首页
Scala学习笔记(一)

Scala学习笔记(一)

作者: Rinoux | 来源:发表于2016-08-22 11:15 被阅读28次

Scala学习笔记

1 val声明常量,var声明变量,使用val时相当于java的final修饰符是不可变的。

2 class中的内容都是非静态的,而object中的都是静态的,可以静态调用。在class中是无法定义main方法。

3 方法声明采用def 方法名(参数:参数类型, ...) : 返回类型 = {} 的形式:

  • 多个参数使用,分隔,无参数时参数列表以及括号可以省略;
  • 无返回值时返回类型可以省略,大括号直接跟在参数列表后;
  • 有返回值时必须在后面加上

4 scala采用类型推断(type inference),编译器会通过上下文推断类型信息。

5 在scala中函数和方法是两个不同的概念,函数可以作为句柄的一部分而方法不行。

6 若无return语句,最后一个有值的语句的值会作为返回值。

7 for循环语句:

for(i <- 1 to 10)
for(i <- 0 util myArray.length)
for(value <- myArray)

8 扩展类可以使用extends关键字,但是一个class只能扩展一个类;

9 特征/特质trait, 类似于java的interface,使用with关键字来使用特质,一个类可以with多个trait,这点与java一致。区别在于,类可以不一定实现trait,但是要在类名上加上abstract修饰符。

10 extendswith的关系:extends后的语句是一体的:

class MyClass extends AnyRef with T1 with T2 with T3

这个类声明实际上应该是

class MyClass extends (AnyRef with T1 with T2 with T3)

因此一个类要“使用”某个trait,必须首先扩展一个类,默认为AnyRef,再使用扩展的类去间接使用trait

11 模式匹配,可以使用switch,但更常用的是match关键字:

x match {
  case 1 => "one"
  case "two" => 2
  case y: Int => "Scala.Int"
  case _ => "many"
  }

_表示其它值

12 异常处理,使用try catch finally三级异常处理机制,使用throw抛出异常:

try {
    //Did something
    } catch {
      case e : Exception => //handle exception
      } finally {
        throw new RuntimeException("balabala")
        }

19 类型的上下界:

  • U >: T:下界, U必须是T的本身或者父类;
  • S <: T:上界, S必须是T的本身或者子类;

20 Unit类型是一种值类型, 仅用来表明方法的返回类型,Unit代表一个表达式单元,可以是语句也可以是具体值。

相关文章

  • Scala集合

    附上Effective Scala:Effective Scala学习笔记摘抄于Twitter scala文档:T...

  • Scala相关文章索引(2)

    基本常识 scala编程第17章学习笔记(1)——集合类型 scala Map类型笔记 scala代码风格指南--...

  • Scala学习笔记(八) 模式匹配

    1. 模式匹配简介 模式匹配是 Scala 的重要特性之一,前面两篇笔记Scala学习笔记(六) Scala的偏函...

  • Scala基础

    学习笔记摘抄于Twitter scala文档:Twitter.github.ionext:Scala类&对象(一)...

  • 《Scala 程序设计》学习笔记 说明

    本笔记是我在学习完 Scala 语法后,重学 Scala 时记录的。笔记中的内容侧重 Scala 和 函数式语言的...

  • Scala笔记

    Scala基础 学习twitter的scala教程的笔记 函数 函数定义,scala语法中可以使用多种方式定义函数...

  • scala学习笔记(一)

    文章转至点击进入原文章最近刚碰到个好机会去用scala,所以从本章开始记录scala的学习笔记,更多是实验就形式来...

  • Scala学习笔记(一)

    Scala学习笔记 1 val声明常量,var声明变量,使用val时相当于java的final修饰符是不可变的。 ...

  • Scala学习笔记(一)

    一、变量 获取变量的值是一个耗时的工作时,可以考虑使用lazy var. lazy val forLater = ...

  • scala 入门学习

    Scala学习笔记: 1.1 scala的基础语法 声明与定义(赋值):声明变量时可以指定类型,不指定也可以自动识...

网友评论

      本文标题:Scala学习笔记(一)

      本文链接:https://www.haomeiwen.com/subject/yinwsttx.html