• scala基础入门


    1、scala当中申明值和变量

    scala当中的变量申明可以使用两种方式,第一种使用val来申明变量。第二种使用var来申明变量。

    申明变量语法

    val/var 变量名 [:变量类型] = 变量值

    其中val定义的变量是不可变的。类似于java当中使用final来进行修饰 

    REPL自动分配变量名

    如果我们在REPL当中没有定义变量名,那么我们的变量名系统会自动给定

       

       

    注意:scala当中的变量类型可以不用指定,系统会自动推断。为了减少可变性引起的bug,scala当中推荐尽量使用不可变类型来申明变量。var和val申明变量的时候,变量都必须初始化

       

    2、块表达式

    定义变量时用 {} 包含一系列表达式,其中块的最后一个表达式的值就是块的值。

    var block1 = {

      println("Hello")

      val num:Int = 23

      val str:String = "world"

      num-12

    }

       

    println(block1)

    块表达式最后的结果,就是我们变量的值

       

    3、scala当中常用数据类型

    Scala和Java一样,有7种数值类型Byte、Char、Short、Int、Long、Float、Double类型和1个Boolean类型。

    Boolean

    true 或者 false

    Byte

    8位, 有符号

    Short

    16位, 有符号

    Int

    32位, 有符号

    Long

    64位, 有符号

    Char

    16位, 无符号

    Float

    32位, 单精度浮点数

    Double

    64位, 双精度浮点数

    String

    其实就是由Char数组组成

       

    与java当中不同,scala当中并不区分基本数据类型和引用数据类型,所有的这些类型全部都是对象,可以调用相对应的方法。在scala当中,String直接引用的是java.lang.String这个java当中的类型。由于String在需要时能隐式转换为StringOps,因此不需要任何额外的转换,String就可以使用这些方法。

    每一种数据类型都有对应的Rich* 类型,如RichInt、RichChar等,为基本类型提供了更多的有用操作。

       

    4、scala当中的常用类型结构图

    Scala中,所有的值都是类对象,而所有的类,包括值类型,都最终继承自一个统一的根类型Any。统一类型,是Scala的又一大特点。更特别的是,Scala中还定义了几个底层类(Bottom Class),比如Null和Nothing。

    1. Null是所有引用类型的子类型,而Nothing是所有类型的子类型。Null类只有一个实例对象,null,类似于Java中的null引用。null可以赋值给任意引用类型,但是不能赋值给值类型。
    2. Nothing,可以作为没有正常返回值的方法的返回类型,非常直观的告诉你这个方法不会正常返回,而且由于Nothing是其他任意类型的子类,他还能跟要求返回值的方法兼容。
    3. Unit类型用来标识过程,也就是没有明确返回值的函数。 由此可见,Unit类似于Java里的void。Unit只有一个实例,(),这个实例也没有实质的意义。

       

       

    5、算数操作符重载

    +-*/%可以完成和Java中相同的工作,但是有一点区别,他们都是方法。你几乎可以用任何符号来为方法命名。

    举例:

    scala> 1 + 2

    等同于:

       

    scala> 1.+(2)

       

       

    注意:Scala中没有++、--操作符,需要通过+=、-=来实现同样的效果。

       

  • 相关阅读:
    [Clr via C#读书笔记]Cp4类型基础
    [Clr via C#读书笔记]Cp3共享程序集和强命名程
    [Clr via C#读书笔记]Cp2生成打包部署和管理应用程序和类型
    [Clr via C#读书笔记]Cp1CLR执行模型
    试用Markdown来写东西
    字符编码的总结
    常去的网站
    Click Once使用总结
    【LevelDB源码阅读】Slice
    【程序员面试金典】面试题 01.05. 一次编辑
  • 原文地址:https://www.cnblogs.com/starzy/p/10464419.html
Copyright © 2020-2023  润新知