Scala各类符号介绍(一)

scala的各种符号含义

1、:::运算符号,表示的是List的连接操作,比如:

val a=List(1,2);val b=List(3,4) val c=a:::b;

代替了java中的add方法;

2、::表示普通元素和List的连接操作:

val d=5

val f=List(6,7)

val g=d::f

则结果是List(5,6,7),1::b操作,::是右侧对象[b]的方法,::左侧的运算数是::方法的参数,

所以1::b的含义是b.::(1)[list.add(1)]

3、scala的+、-、*、/都是函数,比如2+2,实质上是对象2调用+函数,传入参数是2,等价于(2).+(2)

4、=>比较复杂,有四种使用场景

1>匿名函数

//匿名函数定义一个函数变量a

var a =(b:Int)=>a+1;

//给一个高阶函数,传递一个函数

val ListNew=List(1,2,3).map{(a:Int)=>a*2}

--匿名函数定义,=>左边是参数,右边是函数实现体--

2>.表示函数返回类型(function Type)

//定义函数

def double(x:Int):Int=x*2

输出:double:(x:Int)Int

//定义一个函数变量

var x:(Int)=>Int=double

输出:x:Int=>Int=<function1>

函数调用:x(2) 输出结果是:res1:Int=4

函数double的类型就是(x:Int)=>Int或者Int=>Int.左边是方法返回值类型,右边是方法返回值的类型;

3>case语句

val x=1;valy=2;

val max=x>y match{

case true=>x

case false=>y

}

在模式匹配match和try-catch都用“=>”表示输出的结果或返回的值

4>传名参数

传名参数在函数调用前表达式不会被求值,而是会包裹成一个匿名函数作为函数的参数

传递下去,例如参数类型为无参函数的参数就是传名参数。

//函数double

def doubles(x:=>Int)={

println(x)

x*2

}

//调用函数

doubles(3) 返回值为res2:Int=6

//定义函数

def f(x:Int):Int={println(s"Calling f($x)")

x+1

}

//调用函数

doubles(f(3)) 输出res9=8;

5、_N(下划线数字)

val value=(9,'3dfsdfdafsdf');

println(value._1);//第一个元素

_N用于访问元组的第N个元素(N>=1),元组不同与List/Array,元组中的元素可以不同

6、->是所有scala都有的方法,eg:A->B返回一个二元组(A,B)

   <-:是一个函数,被使用在for循环中 ,每次遍历生成一个新的val对象,而不是var对象。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值