I have the following code,
abstract type A end
struct A1 <: A end
struct A2 <: A
b1::Float64
b2::Int64
end
function f(x, fonzi)
if fonzi == A1()
return 2 * x
elseif fonzi == A2() # <-
return fonzi.b1^fonzi.b2 * x
else
return 0.0
end
end
and run
f(1, A1()) # 2
f(1, A2(2.0, 2)) # errors
How may fonzi == A2()
be changed so that f(1,A2(2.0, 2))
runs fine, instead of raising the following error:
ERROR: LoadError: MethodError: no method matching A2()
Closest candidates are:
A2(::Float64, ::Int64) at /Users/Code/test.jl:4
A2(::Any, ::Any) at /Users/Code/test.jl:4
Thanks in advance