scala学习--入门

一、scala的特点

  • 面向对象特性
    每个值都是对象

    对象的数据类型和行为由类(Class)和特质(Trait,类似于接口)描述

    利用特质实现混入式多重继承

  • 函数式编程

    每个函数都是一个值
    支持高阶函数、柯里化(currying)、样例类(case class)及模式匹配……

  • Scala是静态类型语言、强类型语言

  • 扩展性:隐式类、字符串插值

二、scala关键字

在这里插入图片描述

三、变量与常量

  • 变量 :复制后可以改变,生命周期中可以被多次赋值
  • 使用var修饰
scala> var a:Int=1
a: Int = 1

scala> a=2
a: Int = 2

scala> a
res0: Int = 2
  • 常量: 赋值后不可变,类似于Java中的final变量
  • 使用val修饰
scala> val b:Int=1
b: Int = 1

scala> b=2
<console>:12: error: reassignment to val
       b=2
        ^

scala> b
res1: Int = 1

四、使用类型别名定义变量

可以这么做,但是不建议使用,不利于阅读

type关键字
type 类型别名=类型

scala> type S=String
defined type alias S

scala> var a:S=1
<console>:12: error: type mismatch;
 found   : Int(1)
 required: S
    (which expands to)  String
       var a:S=1
               ^

scala> var a:S="aa"
a: S = aa

五、数据类型

在这里插入图片描述

  • Scala数据类型层次结构
  1. Any:所有类型的超类(顶级类型)
  2. AnyVal:表示值类型的超类
  3. AnyRef:表示引用类型的超类,对应java.lang.Object
  4. Unit:表示无值,类似Java中的void
  5. Nothing:所有类型的子类
  6. Null:表示null或空引用

在这里插入图片描述

六、字符串插值

  • s插值器:允许将变量引用、表达式直接插入字面字符中
scala> val name="lisi"
name: String = lisi

scala> println(s"Hello,$name")
Hello,lisi
  • f插值器
scala> val height = 1.9
height: Double = 1.9

scala> name
res3: String = lisi

scala> println(f"$name%s is $height%2.2f ")
lisi is 1.90
  • raw插值器
scala> s"a\nb"    //输出换行符
res6: String =
a
b

scala> raw"a\nb"  //输出原始字符
res7: String = a\nb
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值