Как получить функцию из типа функции? - PullRequest
3 голосов
/ 28 мая 2019

Предположим, у меня есть конкретный тип нормальной функции с именем Julia, F = typeof(f).Можно ли вернуть f с F?Я предполагаю, что это должно работать в принципе, так как F - это тип синглтона.

Ответы [ 2 ]

3 голосов
/ 28 мая 2019

Вы можете использовать функцию Core.Compiler.singleton_type, которая возвращает поле instance для бетона DataType. Я думаю, что эта функция используется для той же цели, что и ваша (не только для этой цели) в Core.Compiler во время компиляции. Это, вероятно, считается «более внутренним», чем прямой доступ к полю instance.

julia> Core.Compiler.singleton_type(typeof(sum))
sum (generic function with 13 methods)
3 голосов
/ 28 мая 2019

Я бы использовал F.instance, но, возможно, есть какое-то лучшее решение (так как этот использует внутренние устройства).

...