Юлия: Почему эта функция возвращает значение? - PullRequest
4 голосов
/ 25 февраля 2020

Новичок в Джулии, изучив руководство и получив этот пример в разделе Методы:

julia> mytypeof(x::T) where {T} = T
mytypeof (generic function with 1 method)

Когда вы вызываете этот метод со значениями для x, он возвращает вам тип:

julia> mytypeof(1)
Int64

julia> mytypeof(1.0)
Float64

Мой вопрос: почему это вообще возвращает значение? Иными словами, где подразумеваемое возвращаемое значение?

Ответы [ 2 ]

8 голосов
/ 25 февраля 2020

Вы должны прочитать

mytypeof(x::T) where {T} = T

как

(mytypeof(x::T) where {T}) = T

То есть = T не является частью предложения where; это RHS функции.

5 голосов
/ 25 февраля 2020

В Julia по умолчанию последнее значение тела функции возвращается автоматически.

В вашем случае тело функции просто T. Следовательно, T возвращается. (Представьте, что на самом деле это return T.)

Если вы не хотите ничего возвращать, вы можете return nothing.

...