54 Scala入门、变量和数据类型、运算符

Scala程序编译执行流程

54 Scala入门、变量和数据类型、运算符

变量

// val/var 变量标识:变量类型 = 初始值
// var 可以被重新赋值
// var 不可以被重新赋值
// scala语句的最后不需要添加分号
val name:String = "tom"

使用类型推断来定义变量

// scala可以自动根据变量的值来自动推断变量的类型
val name = "tom"

惰性赋值

// 有一些变量保存的数据较大,但不需要马上加载到JVM内存
// 可以使用惰性赋值来提高效率
lazy val sql = """insert overwrite table adm.itcast_adm_personas
select
a.user_id,
a.user_name,
a.user_sex,
a.user_birthday,
a.user_age,
a.constellation,
left join gdm.itcast_gdm_user_buy_category c on a.user_id=c.user_id
left join gdm.itcast_gdm_user_visit d on a.user_id=d.user_id;"
"""

字符串

// 使用双引号
// 使用插值表达式
val name = "zhangshan"
val age = 30
val sex = "male"
val info = s"name=${name}, age=${age}, sex=${sex}"
println(info)
// 使用三引号

数据类型

54 Scala入门、变量和数据类型、运算符

  • scala中所有的类型都使用大写字母开头

  • 整形使用Int而不是Integer

  • scala中定义变量可以不写类型,让scala编译器自动推断

运算符

  • scala没有 ++, -- 运算符
  • scala中可以直接使用 == ,!= 进行比较,与equals相同,比较的是值
  • eq 比较的是地址值
val str1 = "abc"
val str2 = str1 + ""
str1 == str2
str1.eq(str2)

Scala类型层次结构

54 Scala入门、变量和数据类型、运算符

54 Scala入门、变量和数据类型、运算符

// 以下代码有问题
// null类型不是Int类型的子类,不能转换成Int类型
val b:Int = null
上一篇:ELECTRA中文预训练模型开源,110个参数,性能媲美BERT


下一篇:聊聊写代码的20个反面教材