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
name
field of aPerson
struct 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
street
field of theaddress
field within thePerson
struct. -
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.5
The dot syntax
p.x
is equivalent togetfield(p, :x)
. Both methods access thex
field of thePoint
struct.
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.