Here is another type with only default constructors:
# see the code in Chapter 6\inner_constructors.jl mutable struct Person firstname::String lastname::String sex::Char age::Float64 children::Array{String, 1} end p1 = Person("Alan", "Bates", 'M', 45.5, ["Jeff", "Stephan"])
This example demonstrates that an object can contain collections, such as arrays or dictionaries. Custom types can also be stored in a collection, just like built-in types, for example:
people = Person[]
This returns 0-element Array{Person,1}
:
push!(people, p1) push!(people, Person("Julia", "Smith", 'F', 27, ["Viral"]))
The show(people)
function now returns the following output:
Person[Person("Alan", "Bates", 'M', 45.5, ["Jeff", "Stephan"]), Person("Julia", "Smith", 'F', 27.0, ["Viral"])]
Now we can define a function fullname
on type Person
. You will notice that the definition stays outside the type's code:
fullname(p::Person) = "$(p.firstname) $(p.lastname...