Scala对函数的实参参数采用两种不同求值策略。
def fun(x:Int, y => Int)=1
红色部分是Call By Value的定义,蓝色部分是Call By Name的定义。
Call By Value
先计算实参的表达式,实参计算且只计算一次。
Call By Name
实参用到时才计算表达一次,且出现多少次计算多少次
图片来自慕课网Scala教程
Scala对函数的实参参数采用两种不同求值策略。
def fun(x:Int, y => Int)=1
红色部分是Call By Value的定义,蓝色部分是Call By Name的定义。