新手语法问题

遇到一个看不懂的语法,文档里也找不到,据称是Julia1.0.0,具体如下:

abstract type ActivationFunction end
struct ReLU <: ActivationFunction end
(f::ReLU)(x) = max.(x,0)

前两行我看懂是创建抽象类型和创建复合类型,请问第三行里(f::ReLU)(x)是什么作用?

相当于functor,给某个类型的对象添加方法,使之可被调用

f=ReLU()
f(0)

如果你用不到这个对象自身,写成(::ReLU)(x)=...就行

1 个赞