0. Scala中的数据类型
因为Scala底层是Jvm,所以Scala和Java一样,有7种数值类型Byte、Char、Short、Int、Long、Float和Double(scala里无包装类型)和一个Boolean类型(都是大写的类型),其他Java支持的数据类型如String类型,Scala一般都支持。但是跟Java不同的是这些都是类,可以直接调用内嵌方法,比如:1.toString(),返回一个字符串1。在Scala里并不刻意区分基本类型和引用类型。
1.Scala中变量的使用与演示
1.1 scala中变量的使用
1.在scala中, 可以使用 val 或者 var 来定义变量, 语法格式如下:
val/var 变量标识:变量类型 = 初始值
val 定义的是不可重新赋值的变量
var 定义的是可重新赋值的变量
2.代码演示
scala> val name:String = "tom"
name: String = tom
scala> val c:String = "jack"
c: String = jack
scala> val d:String =""
d: String = ""
scala> var a = 1
a: Int = 1
scala> var b = a*2
b: Int = 2
scala> var a1:Int = 2;
a1: Int = 2
scala> var b2:Double = a1*3.14
b2: Double = 6.28
scala> val name:String = "tom"
name: String = tom
scala> name = "Jim
<console>:1: error: unclosed string literal
name = "Jim
^
scala> var name:String = "tom"
name: String = tom
scala> name = "Jim"
name: String = Jim
scala> val name = "tom"
name: String = tom scala可以自动根据变量的值来自动推断变量的类型, 这样编写代码更加简洁。
尖叫提示:
1.如上,一个很简单Scala变量求和程序a+1,回车立马出结果,从技术上讲,Scala并不是一个程序解释器。底层实际上我们输入的内容被快速地编译成字节码,然后再将这些字节码交给JVM去运行的。
2.scala中定义变量类型写在变量名后面,当然Scala中可以定义变量时不带变量类型。 这个时候scala可以自动根据变量的值来自动推断变量的类型, 这样编写代码更加简洁。
2.scala的语句最后不需要添加分号,当然你加分号人家也不报错。只有当一行有多条语句时才需要加分号;
3.var与val,一般优先使用 val 定义变量, 如果变量需要被重新赋值。才使用 var。
1.2.Scala中重点字符串类型的使用
scala提供多种定义字符串的方式, 将来我们可以根据需要来选择最方便的定义方式。
- 使用双引号
- 使用插值表达式
- 使用三引号
1.2.1使用双引号
格式:val/var 变量名 = “字符串” 或者var/val 变量名:String = ""字符串"
scala> var s:String = "abc"
s: String = abc
scala> val s1 = "a"
s1: String = a
scala> println(s1+s)
aabc
1.2.2插值表达式
scala中, 可以使用插值表达式来定义字符串, 有效避免大量字符串的拼接。
格式:val/var 变量名[:String] = s"${变量/表达式}字符串"
尖叫提示:
- 在定义字符串之前添加 s
- 在字符串中, 可以使用 ${} 来引用变量或者编写表达式
scala> var name = "tom"
name: String = tom
scala> val age = 30;
age: Int = 30
scala> val money = 300000000;
money: Int = 300000000
scala> val info = s"name=${name},age=${age},money=${money}"
info: String = name=tom,age=30,money=300000000
1.2.3 使用三引号
如果有大段的文本需要保存,且支持换行, 就可以使用三引号来定义字符串。 例如: 保存一大段的SQL语句。 三个引号中间的所有字符串都将作为字符串的值
格式:val/var 变量名 = """字符串1
字符串2"""
scala> val sql = """
| select
| name,
| age,
| sex
| from fdm_sor.company_basic_Info_d
| join fdm_sor.t_index_d
| on name= code
| """
sql: String =
"
select
name,
age,
sex
from fdm_sor.company_basic_Info_d
join fdm_sor.t_index_d
on name= code
"
3.Scala中的运算符
尖叫提示:
- scala中没有, ++、 --运算符
- 与Java不一样, 在scala中, 可以直接使用 == 、 != 进行比较, 它们与 equals 方法表示一致。 而比较两个对象的引用值, 使用 eq
scala> val s1 = "abc"
s1: String = abc
scala> val s2 = ""
s2: String = ""
scala> val s3 = s1+s2
s3: String = abc
scala> s1==s3
res1: Boolean = true
scala> s1.eq(s3)
res2: Boolean = false
scala> s1.eq(s1+"")
res3: Boolean = false
scala>