关于val

关于val

问题描述:

示例中sayHelloFunc用val修饰,为什么还可以二次赋值?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答
scala> val sayHelloFunc = (name: String) => println("Hello, " + name)


scala> val sayHelloFunc = (name: String) => {println("Hello, " + name)}


这不属于二次赋值,这属于创建了2个新的sayHelloFunc,第2次创建的时候就把之前定义的给覆盖掉了。


这个代码在代码编辑器中会报错的,因为两个函数名称相同,但是scala的命令行下可以支持这种写法。



下面这种写法才是二次赋值,第二次赋值的时候变量a前面没有写val,相当于是对前面定义的a变量的值进行修改,这个执行是会报错的

scala> val a = 1
a: Int = 1

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


  • 不是毛毛虫 提问者 #1

    明白了,谢谢徐老师

    2022-03-23 11:59:11
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师