getfield
getfield(value, name::Symbol)
Extract a named field from a value of composite type. The syntax a.b calls getfield(a, :b), and the syntax a.(b) calls getfield(a, b).
Examples
In the Julia programming language, the function getfield(value, name::Symbol)
Extracts a named field from a value of composite type. The syntax a.b calls getfield(a, :b), and the syntax a.(b) calls getfield(a, b).
Here are some common examples of how to use getfield:
-
Access a field from a struct:
julia> struct Person name::String age::Int end julia> p = Person("Alice", 25) Person("Alice", 25) julia> getfield(p, :name) "Alice"This example shows how to access the
namefield of aPersonstruct usinggetfield. -
Access a nested field from a nested struct:
julia> struct Address street::String city::String end julia> struct Person name::String age::Int address::Address end julia> p = Person("Bob", 30, Address("123 Main St", "New York")) julia> getfield(getfield(p, :address), :street) "123 Main St"In this example, we access the nested
streetfield of theaddressfield within thePersonstruct. -
Use dot syntax for field access:
julia> struct Point x::Float64 y::Float64 end julia> p = Point(3.5, 2.0) julia> p.x 3.5 julia> getfield(p, :x) 3.5The dot syntax
p.xis equivalent togetfield(p, :x). Both methods access thexfield of thePointstruct.
Common mistake example:
julia> struct Rectangle
width::Float64
height::Float64
end
julia> r = Rectangle(5.0, 3.0)
julia> getfield(r, "width")
ERROR: MethodError: no method matching getfield(::Rectangle, ::String)
In this example, the field name is passed as a string instead of a symbol. The correct usage is to pass the field name as a symbol (:width) to getfield.
See Also
User Contributed Notes
Add a Note
The format of note supported is markdown, use triple backtick to start and end a code block.