page contents

var,val和def三个关键字之间的区别?

轩辕小不懂 发布于 2021-09-06 14:13
阅读 717
收藏 0
分类:资源下载
1870
Nen
Nen
- 程序员

var是变量声明关键字,类似于Java中的变量,变量值可以更改,但是变量类型不能更改。

val常量声明关键字。

def 关键字用于创建方法(注意方法和函数的区别)

还有一个lazy val(惰性val)声明,意思是当需要计算时才使用,避免重复计算


代码示例:

var x = 3 //  x是Int类型

x = 4      // 

x = "error" // 类型变化,编译器报错'error: type mismatch'

val y = 3

y = 4        //常量值不可更改,报错 'error: reassignment to val'

def fun(name: String) = "Hey! My name is: " + name

fun("Scala") // "Hey! My name is: Scala"

//注意scala中函数式编程一切都是表达式

lazy val x = {

  println("computing x")

  3

}

val y = {

  println("computing y")

  10

}

x+x  //

y+y  // x 没有计算, 打印结果"computing y" 

请先 登录 后评论