|
|
|
|
|
by ChrisFoster
2097 days ago
|
|
> A function does not spring into existence until the definition of the function is executed. Methods and their type signatures do exist within the runtime as soon as the function expression is evaluated. To simplify the example from your article julia> a = 20
20
julia> foo(x::(a < 10 ? Int : Float64)) = "thing"
foo (generic function with 1 method)
julia> methods(foo)
# 1 method for generic function "foo":
[1] foo(x::Float64) in Main at REPL[2]:1
Here you see that one method of the function foo has been defined, and the code in the type signature has already run, resulting in a method which takes x::Float64. After this point, changing the value of `a` will not change anything about foo. |
|