1. 程式人生 > >Julia:type的用法

Julia:type的用法

# 這一節講解type的使用
function printsum(a)
    println(summary(a), ": ", repr(a))
end

type Person
    name::AbstractString
    male::Bool
    age::Float64
    children::Int64
end

person1 = Person("luk", false, 26, 0)
printsum(person1)
#> Person: Person("luk", false, 26.0, 0)

people = Person[]
printsum(people)
push!(people, Person("Steve", true, 22, 1))
push!(people, Person("Bob", false, 33, 2))
printsum(people)
#> 2-element Array{Person,1}: Person[Person("Steve", true, 22.0, 1), Person("Bob", false, 33.0, 2)]

# types也可以包含arrays與dicts
type Family
    name::AbstractString
    members::Array{AbstractString,1}
    extended::Bool
    # for the other two values
    Family(name::AbstractString) = new(name, AbstractString[], false)
    Family(name::AbstractString, members) = new(name, members, length(members) > 7)
end

fam1 = Family("luk")
println(fam1)
#> Family("luk", AbstractString[], false)

fam2 = Family("luk", ["luk", "lkl"])
println(fam2)
#> Family("luk", AbstractString["luk", "lkl"], false)