Scala变量 vs 对象

一个程序就是一个世界,在scala中一切都是对象
在这里插入图片描述

Scala变量使用说明

变量声明基本语法**
var | val 变量名 [: 变量类型] = 变量值

注意事项

1.声明变量时,类型可以省略(编译器自动推导,即类型推导)
2.类型确定后,就不能修改,说明Scala 是强数据类型语言.
3.在声明/定义一个变量时,可以使用var 或者 val 来修饰, var 修饰的变量可改变,val 修饰的变量不可改.
4.val修饰的变量在编译后,等同于加上final, 通过反编译看下底层代码
5.var 修饰的对象引用可以改变,val 修饰的则不可改变,但对象的状态(值)却是可以改变的。(比如: 自定义对象
、数组、集合等等) [分析val好处]
6.变量声明时,需要初始值。

数据类型

scala数据类型介绍

① Scala 与 Java有着相同的数据类型,在Scala中数据类型都是对象,也就是说scala没有java中的原生类型
② Scala数据类型分为两大类 AnyVal(值类型) 和 AnyRef(引用类型), 注意:不管是AnyVal还是AnyRef 都是对象。
③ 相对于java的类型系统,scala要复杂些!也正是这复杂多变的类型系统才让面向对象编程和函数式编程完美的融合在了一起

在这里插入图片描述

package com.chapter02

object TypeDemo01 {
  def main(args: Array[String]): Unit = {
    var x1 : Int = 10
    //在scala中数据类型均为对象
    //一切均为对象
    println(x1.toString + x1.toDouble + x1.toChar + 100.toString)
    //在scala中如果没有形参的话可以没有()
    sum
    sum()
  }
  def sum() : Unit = {
    println("say hi")
  }
}

总结:
1.在scala中有一个根类型为Any,它是所有类的父类,就和java的Object一样
2.在scala中,一切皆为对象,主要分为两大类:AnyVar,和AnyRef。他们丢失Any的子类。
3.Null是scala的特殊类型:它只有一个值为null。它是bottom class,是所有AnyRef的子类
4.Nothing也是bottom class的类型,它是所有类型的子类,在开发中,通常可以将Nothing类型的值返回给任意变量和函数,在抛出异常的时候使用的多。
5.在scala中,仍然遵守低精度向高精度的隐式转换。

    var x2 = 1.1
    var x3 = 1.2f
    x3 = x2.toFloat
    println(x3)

scala数据类型列表

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值