In the below example, in second line.
scala> val number = List(1,2,3,4,5)
scala> number.map (x => x*2)
res60: List[Int] = List(2, 4, 6, 8, 10)
Also, is the same symbol pronounced differently in different context in scala. Is it any different from How do I pronounce "=>" as used in lambda expressions in .Net
制作Div Clickable答案 0 :(得分:6)
显然你可以把它读成"这样"或"进入"根据C#问题。 How do I pronounce "=>" as used in lambda expressions in .Net
发现的另一个想法是" lambda x到x * 2"或" x到x * 2"根据Haskell的问题。 How do you say `\x -> y`?
答案 1 :(得分:5)
我听说在少数scala讲话中称呼fat arrow
。
修改强>
根据this answer:
奥德斯基使用的“官方”术语是“右箭头”。
this page of the official docs也称之为right arrow
答案 2 :(得分:1)
称之为'暗示'将是好的
Scala将其用作语法糖。这是一个带参数x
并返回x*2
的函数。它接近于数学中的域范围映射,即Implication
。
如果函数f
对x进行操作并返回y=f(x)
,则返回f=(x=>y)
,即当且仅当x
具有适合{{1}域的特定“类型”时然后暗示特定“类型”的结果f
。
答案 3 :(得分:0)
=>
符号在scala中用作暗示。
以下是用于=>
暗示的上下文(我知道): -
匹配类似于java示例中的switch:
def typeOfNum(num:AnyVal) = num match{
case i:Int => println("Int")
case _ => println("Some thing else")
}
Functions
(匿名,按名称呼叫)匿名函数调用类似于java 8 lambda表达式。
按名称呼叫使用implies
,如下所述
def callByName(value :=> Int )= println("Given number"+x)
Currying
Currying是在时间使用参数调用函数的过程。
def curry : T1 => T2 => T3 => R ={
(x1:T1) => (x2:T2) => (x3:T3) => apply(x1,x2,x3)
}
,
catch
阻止要匹配catch
块中的异常,这类似于case
块中的match
用法
try{ ---- }
catch{
case t : Throwable => Left(t)
}
variance
与函数调用类似,给定X将其转换为Y,即f(x)=> y。
var f : T => T = (t:T)=> {new T}
其中
˚F-------------->是一个变量
T => Ť------->函数类型的签名(-T,+ T)
(T:T)---------->函数的参数列表
=> {new T} ---->返回方法的类型
答案 4 :(得分:0)
来自MSDN:
所有lambda表达式都使用lambda operator =>,它被读作 "进入"。