줄리아에서 구조체 속성 확인하는 법

줄리아에서 구조체 속성 확인하는 법

How to Check Properties of Structure in Julia

코드

propertynames() 함수로 확인하면 된다.1 줄리아에는 클래스가 없고 구조체만 있으니2 이 함수로 리턴되는 모든 심볼들은 정확히 프로퍼티들만의 이름들이다.

다음은 Graphs 패키지에서 에르되시-레니 네트워크를 생성하고 노드의 수와 각 노드의 네이버후드를 확인하는 코드다. propertynames() 함수에 해당 네트워크를 집어넣어서 :nefadjlist라는 프로퍼티가 심볼로써 리턴되었다.

julia> using Graphs

julia> G_nm = erdos_renyi(50,200)
{50, 200} undirected simple Int64 graph

julia> propertynames(G_nm)
(:ne, :fadjlist)

julia> G_nm.ne
200

julia> G_nm.fadjlist
50-element Vector{Vector{Int64}}:
 [3, 4, 11, 25, 26, 27, 33, 40, 44, 48]
 [11, 17, 20, 23, 24, 38, 45, 50]
 [1, 4, 15, 24, 29, 30, 34, 42, 46]
 [1, 3, 18, 24, 30, 32, 43, 45]
 [6, 7, 8, 24, 26, 29, 37, 39, 50]
 
 [3, 13, 17, 28, 29, 32, 39, 44, 47, 49]
 [10, 14, 18, 26, 32, 36, 41, 44, 46]
 [1, 21, 23, 24, 25, 32, 41, 44, 45]
 [9, 13, 14, 17, 21, 31, 43, 46, 50]
 [2, 5, 13, 28, 31, 32, 35, 42, 44, 49]

환경

  • OS: Windows
  • julia: v1.6.0

  1. https://docs.julialang.org/en/v1/base/base/#Base.propertynames ↩︎

  2. https://stackoverflow.com/a/56352954 ↩︎

댓글