Джулия - Проверьте объект имеет атрибут - PullRequest
2 голосов
/ 18 октября 2019

Предположим, у меня есть struct, как показано ниже.

struct Foo
    attr1
    attr2
end

Затем я могу создать экземпляр и получить attr1 и attr2

julia> foo = Foo(1,2)

julia> foo.attr1
1

Мне просто интересно,Я могу сделать любую проверку, что мой объект foo имеет attr1?

Для справки, python имеет hasattr, что именно то, что я ищу здесь, но яне могу найти эквивалент в julia.

Любая помощь будет признательна.

РЕДАКТИРОВАТЬ : Я в Юлии 1.1.0

Ответы [ 2 ]

4 голосов
/ 18 октября 2019

Для Julia v1.2 или выше это задокументировано здесь: hasproperty.

Если вы используете Julia 1.1.0, то я думаю, что вы можете использовать эту функцию в Compat.jl

3 голосов
/ 18 октября 2019

если вы находитесь в julia 1.1 или 1.0, вы можете определить свои собственные hasproperty:

hasproperty(x, s::Symbol) = s in fieldnames(typeof(x))

это (почти) та же функция, что и в julia 1.2 base и выше

...