function printsum(a)
# summary generates a summary of an object
println(summary(a), ": ", repr(a))
end
# arrays can be initialised directly:
a1 = [1, 2, 3]
printsum(a1)
# or initialised empty:
a2 = []
printsum(a2)
#> 0-element Array{Any,1}: Any[]
a3 = Int64[]
printsum(a3)
# 如果数组没有明确的类型,类似于push!这样的函数不会起作用
a4 = 1:20
printsum(a4)
#> 20-element UnitRange{Int64}: 1:20
# using function collect to create arrays thus:
a4 = collect(1:20)
printsum(a4)
#> 20-element Array{Int64,1}: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
# 也可以用下面的方式产生数组
a5 = [2^i for i in 1:10]
printsum(a5)
#> 10-element Array{Int64,1}: [2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
push!(a1, 4)
printsum(a1)
#> 4-element Array{Int64,1}: [1, 2, 3, 4]
push!(a3, 1)
printsum(a3)
#> 1-element Array{Int64,1}: [1]
# using repeat() to create arrays
# and must use the keywords "inner" and "outer"
# all arguments must be arrays not ranges
a6 = repeat(a1, inner=[2], outer = [1])
printsum(a6)
#> 8-element Array{Int64,1}: [1, 1, 2, 2, 3, 3, 4, 4]
a7 = repeat(collect(4:-1:1), inner=[1], outer=[2])
#> 8-element Array{Int64,1}: [4, 3, 2, 1, 4, 3, 2, 1]