Julia 中的函数可以被匿名构造,成为匿名函数,匿名函数是没有函数名的函数
julia> x -> x + 1 #3 (generic function with 1 method)
这是一个匿名函数,输入参数 x 的值,返回 x + 1 的值
该匿名函数相当于该函数
julia> function (x) x + 1 end #5 (generic function with 1 method)
匿名函数的主要用途是将自己传递给其他函数作为参数
最经典的例子是 map 函数,它将函数应用于数组的每个值, 并返回一个包含结果值的新数组
julia> map(round, [1.2, 3.3, 4.2]) 3-element Array{Float64,1}: 1.0 3.0 4.0
map 函数的第一个参数可以不是匿名函数,大多数情况下是匿名函数
julia> map(x -> x + 1, [5, 6, 7]) 3-element Array{Int64,1}: 6 7 8
匿名函数也可以传递多个参数 (x, y, z) -> 2x + y - z
julia> (x, y, z) -> 2x + y - z #13 (generic function with 1 method)
无参匿名函数相当于 () -> 3
julia> () -> 3 #15 (generic function with 1 method)
无参匿名函数可以“延迟”计算,做这个用处时,代码被封装进无参函数,以后可以通过把它命名为 f() 来引入