często widzę coś takiego w następujących Julia:Julia co oznacza bezimienna wartość w nagłówku funkcji?
convert(::Type{Point{Float64}}, ::Float64)
Jak działa (::
? A jaka jest tego terminologia?
często widzę coś takiego w następujących Julia:Julia co oznacza bezimienna wartość w nagłówku funkcji?
convert(::Type{Point{Float64}}, ::Float64)
Jak działa (::
? A jaka jest tego terminologia?
Twoja odpowiedź znajduje się pod numerem the Julia documentation for defining conversions. Zacytować (z typów włączony, aby jeszcze bardziej proste do odczytania):
Typ pierwszy argument tej metody jest singleton type,
Type{Point{Float64}}
, którego jedyną instancją jestPoint{Float64}
. Dlatego ta metoda jest wywoływana tylko wtedy, gdy pierwszy argument jest wartością typuPoint{Float64}
. Zwróć uwagę na składnię użytą dla pierwszego argumentu: nazwa argumentu jest pomijana przed symbolem::
i podany jest tylko typ. To jest składnia w języku Julia dla argumentu funkcji , którego typ jest określony, ale którego wartość nigdy nie jest używana w treści funkcji. W tym przykładzie, ponieważ typem jest singleton , nigdy nie będzie żadnego powodu, aby użyć jego wartości w ciele .
(Kopalnia nacisk)
napotkasz składnię foo(::SomeType)
komunikaty o błędach, podczas próby wywołania funkcji z argumentami niewłaściwego typu (mimo wszystko nie można wyświetlić nazwy argumentów: a wariant, który nie istnieje). E.g:
julia> foo(x::Bool) = 3
foo (generic function with 1 method)
julia> foo(5)
ERROR: `foo` has no method matching foo(::Int64)
Po prostu zdałem sobie sprawę, że twoja druga argumentacja również nie ma nazwy, co wydaje mi się trochę dziwne w przypadku nagłówka funkcji. Czy to może być komunikat o błędzie? –