scala入门基础(1)

一。思维导图    8efbc8d774834d43a3fb13cbb0378179.jpg

 二。案例

案例1.

分别使用val和var定义一个变量name

使用val同时声明多个变量。

操作步骤:

(1)打开Windows命令控制台,输入scala并按【Enter】键,进入Scala的解释器。

(2)使用val定义一个变量name。输入val name="scala"并按【Enter】键,可以看到变量定义成功,并且成功推断出其变量类型为String,如下所示(⚠️标点符号需使用英文)

scala>val name="scala"

 

name: String = scala

scala>

(3)修改上一步定义的变量name的值。输入 name="java"并按【Enter】键,结果提示报错,原因就是用val声明的变量值不能进行修改,如下所示(⚠️标点符号需使用英文)

scala> name= "java"

<console>:12:error:reassignment to val

        name= "java"

                       (提示报错)

(4)要想修改变量值,可以使用var定义变量name。使用var重新定义变量name。输入var name="scala"并按【Enter】键,可以看到变量已定义成功,接着输入name="java"并按【Enter】键,可以看到变量值已被成功修改,如下所示。

scala> var name="scala"

name:String = scala

scala>name="java"

name:String = java

scala>

    (使用var定义变量name并修改变量值)

⚠️注意:其实Scala中使用val声明的变量不可重赋值这一点,就相当于Java中用final关键字修饰的变量,因为经过final修饰的变量值同样不可被改变。

(5)使用val同时声明多个变量。输入val a,b=3并按【Enter】键,可以看到成功声明了两个整变量a、b并均赋值为3,如下所示。

scala> val a, b=3

a: Int =3

b:Int = 3

           (用val同时声明多个变量)

(6)使用var同时声明多个变量。输入var x,y="scala"并按【Enter】键,可以看到成功声明了个字符串型变量x、y并均赋值为scala,如下所示。

scala> var x, y="scala"

x:String = scala

y:String = scala

          (用var同时声明多个变量)

(7)修改变量值的类型,使其与声明变量时指定的类型不同。输入 var name="scala"并按【Enter】键,声明一个字符串类型的变量name,接着输入name=2并按【Enter】键,结果提示类型不匹配,如下所示,这里出错的原因就在于重新赋予的变量值类型(2是整型值)与声明变量时指定的类型(字符串型)不一致。

scala> var name="scala"

name:String = scala

 

scala >name=2

<console>:12:error:type mismatch;

found       :Int (2)

required:String

        name=2

                        (结果报错)

⚠️ 注意:由于Scala是一种强类型的语言,因此在声明变量时指定的数据类型与所赋值的数据类型一定要匹配,否则就会报错。

 

案例2.

演示Scala的lazy变量的惰性求值。

操作步骤:

(1)打开 Windows命令控制台,输入scala并按【Enter】键,进入Scala解释器。

(2)用val声明一个变量并赋值。输入val name="shf"并按【Enter】键,可以看到值shf马上就赋给了变量name,如下所示。

scala> val name="shf"

name: String = shf

                 (声明变量并赋值)

(3)重复上一步的操作,但是这次使用lazy修饰变量。输入lazy val name="scala”并按【Enter】键,可以看到值scala并没有马上赋给变量name,而是显示<lazy>,如下所示。

scala> lazy val name="scala"

hame:String =<lazy>

             (使用lazy修饰变量的结果)

(4)用lazy修饰的变量,只有在使用时才会被真正赋值,此处调用一下name。输入name并按【Enter】键,可以看到值scala已赋给变量,如下所示。

scala> name

res7:String= scala

                (值scala已赋给变量)

(5)用var声明的变量能否用lazy修饰。输入lazy var name="df"并按【Enter】键,结果报错,提示lazy不可与var合用,只能用来修饰用val声明的变量,如下所示。

scala> lazy var name="df"

<console>:1: error: lazy not allowed here. Only vals can be lazy

       lazy var name="df"

                        (结果报错)

——这就是一个惰性求值的简单案例。所谓惰性求值,其实就是说在声明变量时,并不会给变量分配内存空间,只有在使用变量时才会分配。

 

 

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值