Scala系列3:轻松搞定Scala变量与数据类型,运算符等基础语法

2020-09-27 18:59发布

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. 1.在scala中, 可以使用 val 或者 var 来定义变量, 语法格式如下:

  2. val/var 变量标识:变量类型 = 初始值


  3. val 定义的是不可重新赋值的变量

  4. var 定义的是可重新赋值的变量


  5. 2.代码演示

  6. scala> val name:String = "tom"

  7. name: String = tom


  8. scala> val c:String = "jack"

  9. c: String = jack


  10. scala> val d:String =""

  11. d: String = ""


  12. scala> var a = 1

  13. a: Int = 1


  14. scala> var b = a*2

  15. b: Int = 2


  16. scala> var a1:Int = 2;

  17. a1: Int = 2


  18. scala> var b2:Double = a1*3.14

  19. b2: Double = 6.28


  20. scala> val name:String = "tom"

  21. name: String = tom


  22. scala> name = "Jim

  23. <console>:1: error: unclosed string literal

  24. name = "Jim

  25. ^


  26. scala> var name:String = "tom"

  27. name: String = tom


  28. scala> name = "Jim"

  29. name: String = Jim


  30. scala> val name = "tom"

  31. 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. 使用插值表达式

  3. 使用三引号

1.2.1使用双引号

           格式:val/var 变量名 = “字符串”   或者var/val 变量名:String = ""字符串"


  1. scala> var s:String = "abc"

  2. s: String = abc


  3. scala> val s1 = "a"

  4. s1: String = a


  5. scala> println(s1+s)

  6. aabc

1.2.2插值表达式

scala中, 可以使用插值表达式来定义字符串, 有效避免大量字符串的拼接。

       格式:val/var 变量名[:String] = s"${变量/表达式}字符串"

尖叫提示:

  • 在定义字符串之前添加 s

  • 在字符串中, 可以使用 ${} 来引用变量或者编写表达式



  1. scala> var name = "tom"

  2. name: String = tom


  3. scala> val age = 30;

  4. age: Int = 30


  5. scala> val money = 300000000;

  6. money: Int = 300000000


  7. scala> val info = s"name=${name},age=${age},money=${money}"

  8. info: String = name=tom,age=30,money=300000000

1.2.3 使用三引号

如果有大段的文本需要保存,且支持换行, 就可以使用三引号来定义字符串。 例如: 保存一大段的SQL语句。 三个引号中间的所有字符串都将作为字符串的值

       格式:val/var 变量名 = """字符串1
                                 字符串2"""



  1. scala> val sql = """

  2. | select

  3. | name,

  4. | age,

  5. | sex

  6. | from fdm_sor.company_basic_Info_d

  7. | join fdm_sor.t_index_d

  8. | on name= code

  9. | """


  10. sql: String =

  11. "

  12. select

  13. name,

  14. age,

  15. sex

  16. from fdm_sor.company_basic_Info_d

  17. join fdm_sor.t_index_d

  18. on name= code

  19. "

3.Scala中的运算符

尖叫提示: 

  1. scala中没有, ++、 --运算符

  2. 与Java不一样, 在scala中, 可以直接使用 == 、 != 进行比较, 它们与 equals 方法表示一致。 而比较两个对象的引用值, 使用 eq


  1. scala> val s1 = "abc"

  2. s1: String = abc


  3. scala> val s2 = ""

  4. s2: String = ""


  5. scala> val s3 = s1+s2

  6. s3: String = abc


  7. scala> s1==s3

  8. res1: Boolean = true


  9. scala> s1.eq(s3)

  10. res2: Boolean = false


  11. scala> s1.eq(s1+"")

  12. res3: Boolean = false


  13. scala>


作者:涤生手记

链接:https://mp.csdn.net/console/editor/html/108834119

来源:CSDN
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。