大数据处理学习笔记1.4

一、运算符等价于方法

(一)运算符即方法

  • op运算符与.op方法调用是等价的,op表示运算符:+-*/……
  • 演示x + yx.+(y)的等价性

(二)方法即运算符

1、单参方法

val str = "abcdef"
val x1 = str.indexOf('c')
val x2 = str indexOf 'c'

str.indexOf('c')str indexOf 'c' 是等价的

 2、多参方法

val x3 = str.substring(2, 4)
val x4 = str substring (2, 4) // 如果参数有多个,需要用小括号包起来 

str.substring(2, 4)str substring (2, 4)是等价的

 3、无参方法

val x5 = str.toUpperCase()
val x6 = str.toUpperCase // 方法调用时如果不需要传入任何参数,小括号可以省略
val x7 = str toUpperCase // 这种写法,如果没有参数,则括号不用写

 注意:使用后缀运算符toUpperCase之前必须导入scala.language.postfixOps类,否则会报错

 

import scala.language.postfixOps
val x5 = str.toUpperCase()
val x6 = str.toUpperCase // 方法调用时如果不需要传入任何参数,小括号可以省略
val x7 = str toUpperCase // 这种写法,如果没有参数,则括号不用写

 

二、Scala运算符

(一)运算符分类表

运算符类型运算符
算术运算+、-、*、/
关系运算>、<、>=、<=
逻辑运算`&& 、
位运算`>>、>>>、<< 、~、 &、
比较运算==、!=

三、运算符种类

(一)中缀运算符(Infix Operator)

  • 运算符符在两个操作数之间,2 + 3 等同于2.+(3)

 

(二)前缀运算符(Prefix Operator)

  • 运算符在唯一的操作数之前 :-1、+3、 ~0xFF、!false

  • -1等同于1.unary_-,前缀运算符如同中缀运算符一样,也是方法调用的另一种方式,不同的是,方法名要在符号前加上前缀unary_

 能作为前缀运算符的运算符只有+、-、!、~四种。如果你自己定义了unary_!方法就可以使用!前缀运算符来调用方法了,但是即使你定义了unary_**也不能用来调用该方法,因为*不是四种可用的前缀运算符之一。

(三)后缀运算符(Postfix Operator)

  • 运算符在唯一的操作数之后str toUpperCase 等同于 str.toUpperCase(),后缀运算符不用点或括号调用无参方法。在Scala里,方法调用的空括号可以省略,但是如果去掉括号可能造成副作用就带上括号。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值