带你快速掌握Scala操作———(1)

2021-04-13 11:03:45 浏览数 (1)

前一段时间给大家简单介绍了Scala以及Scala的环境安装,还没看的小伙伴可以先去看一看,把环境配置好。

Scala快速入门简介——(一)

Scala之开发环境安装——(二)

一定要先去看这两篇,配置好环境,才可以进行操作哦!!!!!!

1、scala解释器

后续我们会使用scala解释器来学习scala基本语法,scala解释器像Linux命令一样,执行一条代码,马上就可以让我们看到执行结果,用来测试比较方便。

启动scala解释器

要启动scala解释器,只需要以下几步:

代码语言:javascript复制
	按住windows键   r
	输入scala即可
执行scala代码

在scala的命令提示窗口中输入println(“hello, world”),回车执行

退出解释器

在scala命令提示窗口中执行:quit,即可退出解释器

2、声明变量

语法格式

Java变量定义

代码语言:javascript复制
int a = 0;

在scala中,可以使用val或者var来定义变量,语法格式如下:

代码语言:javascript复制
val/var 变量标识:变量类型 = 初始值

其中

代码语言:javascript复制
	val定义的是不可重新赋值的变量
	var定义的是可重新赋值的变量
	scala中定义变量类型写在变量名后面
	scala的语句最后不需要添加分号

定义一个变量

示例:

定义一个变量保存一个人的名字"tom"

参考代码

代码语言:javascript复制
scala> val name:String = "tom"
name: String = tom

val和var变量

示例

给名字变量进行重新赋值为Jim,观察其运行结果

参考代码

代码语言:javascript复制
scala> name = "Jim"
<console>:12: error: reassignment to val
      name = "Jim"

示例

使用var重新定义变量来保存名字"tom",并尝试重新赋值为Jim,观察其运行结果

参考代码

代码语言:javascript复制
scala> var name:String = "tom"
name: String = tom

scala> name = "Jim"
name: String = Jim

类型推断定义变量

scala的语法要比Java简洁,我们可以使用一种更简洁的方式来定义变量。

示例

使用更简洁的语法定义一个变量保存一个人的名字"tom"

参考代码

代码语言:javascript复制
scala> val name = "tom"
name: String = tom

scala可以自动根据变量的值来自动推断变量的类型,这样编写代码更加简洁。

惰性赋值

在企业的大数据开发中,有时候会编写非常复杂的SQL语句,这些SQL语句可能有几百行甚至上千行。这些SQL语句,如果直接加载到JVM中,会有很大的内存开销。如何解决?

当有一些变量保存的数据较大时,但是不需要马上加载到JVM内存。可以使用惰性赋值来提高效率。

语法格式:

代码语言:javascript复制
lazy val  变量名 = 表达式

参考代码

代码语言:javascript复制
scala> lazy val sql = """insert overwrite table adm.itcast_adm_personas
    |     select
    |     a.user_id,
....
    |     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;"""
sql: String = <lazy>

3、字符串

scala提供多种定义字符串的方式,将来我们可以根据需要来选择最方便的定义方式。

 使用双引号

 使用插值表达式

 使用三引号

使用双引号

语法

代码语言:javascript复制
val/var 变量名 = “字符串”

参考代码

代码语言:javascript复制
val name="hadoop6"
scala> println(name   name.length)
hadoop6

使用插值表达式

插值表达式可以有效避免大量字符串的拼接。

语法

代码语言:javascript复制
val/var 变量名 = s"${变量/表达式}字符串"

在定义字符串之前添加s

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

示例

若干个变量,分别保存:“zhangsan”、30、“male”,定义一个字符串,保存这些信息。

打印输出:name=zhangsan, age=30, sex=male

参考代码

代码语言:javascript复制
scala> val name = "zhangsan"
name: String = zhangsan

scala> val age = 30
age: Int = 30

scala> val sex = "male"
sex: String = male

scala> val info = s"name=${name}, age=${age}, sex=${sex}"
info: String = name=zhangsan, age=30, sex=male

scala> println(info)
name=zhangsan, age=30, sex=male

使用三引号

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

语法

代码语言:javascript复制
val/var 变量名 = """字符串1
字符串2"""

参考代码

代码语言:javascript复制
val sql = """select
    | *
    | from
    |     t_user
    | where
    |     name = "zhangsan""""

println(sql)

后续还会给大家更新其他的,后面还有很多操作,喜欢点个赞吧!

0 人点赞