千家信息网

Scala有哪些表达式

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"Scala有哪些表达式"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、条件表达式i
千家信息网最后更新 2026年11月01日Scala有哪些表达式

本篇内容介绍了"Scala有哪些表达式"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、条件表达式

if else是可以返回值的,if (x > 0) 1 else -1,这个表达式的返回值是Int类型,-1或者1。所以可以这么写val i = if (x > 0) 1 else -1 ,其实我更喜欢这么写 if (x > 0) i=1 else i=-1,前者更加函数化,用val就行,后者更加指令化,必须用var。

二、Unit,if (x > 0) 1,x > 0的话,返回值是1,这个没有问题,可是x < 0怎么办呢?这个表达式没有返回值,没关系,Scala当中有一个Scala.Unit,写作(), 就相当于void 。

三、关于分号,scala当中可写可不写,但有一种情况必须写,一行写了多个语句,其实这个事不知道也行,干嘛非要一行写多个语句。

四、块表达式

java当中也有差不多的东西,不同的是,scala这东西也是有返回值的,返回值就是 x + y ,最后一句话是x + y,这在java当中是不可理解的东西,但是scala当中,这个就相当于是这个块表达式的返回值。

val res = { val x = 10; val y = 20; x + y }

五、While,scala和java没有明显区别,按照我的理解,while是比较指令化的东西,在scala当中尽量避免使用。

六、For, for(i <- 1 to 10) println(i),这是scala当中for的典型样子,跟java当中for (String str : String[])写法是类似的,这个东西在scala当中常用,下面有更详细的介绍。

七、高级for循环

1、多层循环不用写多个for;

2、for的括号内,可以写很多语句;

3、每个生成器后面可以带一个守卫

for (i <- 1 to 10 if i % 2 == 0; toValue = 5; j <- 1 to toValue if j % 2 == 0) println(i, j)

八、for推导式

for语句之所以在scala当中更加受宠,因为它也能有返回值。下面语句的返回值是Vector((2,2), (2,4), (4,2), (4,4), (6,2), (6,4), (8,2), (8,4), (10,2), (10,4))

for (i <- 1 to 10 if i % 2 == 0; toValue = 5; j <- 1 to toValue if j % 2 == 0) yield (i, j)

九、函数

不需要return,最后一个表达式的值就是返回值,也就是x或者-x

def abs(x : Int) = if (x > 0) x else -x

十、默认参数和带名参数,这里充分体现了scala的灵活性

def concat(value : String, left : String = "[", right : String = "]") = left + value + right

十一、变长参数,终于又减到一个跟java差不多的概念

def sum(args : Int*) = {累加操作}

十二、过程

这里其实也跟java差不多,void开头的方法在java当中可以称之为过程,而在scala当中,没有返回值的函数,也可以称之为过程,不过在scala当中,强调的是函数化的编程,所以,一个函数返回值以外的操作,被称之为副作用。过程有以下两种写法:

def printSelf(str: String) {print(str)}或 def printSelf(str: String) :Unit = {print(str)}

十三、lazy val变量的延迟加载,在第一次访问的时候,在实际加载值

十四、异常,无受检机制,也有返回值,Nothing

"Scala有哪些表达式"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

表达式 东西 函数 语句 过程 差不多 参数 多个 一行 内容 写法 实际 就是 情况 指令 更多 知识 循环 不同 受宠 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 广州淘业互联网络科技 互联网科技财经 善班互联网科技 中国互联网科技发展 互联网 新科技 山东吉时兔互联网科技有限公司 现代科技和互联网有关系吗 赶超互联网科技 微信多开 互联网科技公司有风险吗 注册互联网科技公司经营范围大全 开一家科技互联网公司需要多少钱 黑云互联网科技有限公司 山东大美朱楼互联网科技有限公司 互联网科技包装股 信承诺互联网科技有限公司 福仕德教育科技互联网 绵阳真晨互联网科技有限公司 安徽九吞吴互联网科技有限公司 前海云享互联网科技 花魁咖啡 互联网巨头反垄断金融科技 互联网科技公司官网 互联网金融 科技创新 互联网前沿科技 成都铂石互联网科技做什么的 乌苏新华互联网科技做什么的 互联网科技快讯热点 工业互联网科技创业 山东大美朱楼互联网科技有限公司
0