38 lines
648 B
Plaintext
38 lines
648 B
Plaintext
abstract type Hello end
|
|
|
|
struct HelloWorld <: Hello
|
|
name::String
|
|
HelloWorld(s) = new(s)
|
|
end
|
|
|
|
struct HelloTime <: Hello
|
|
name::String
|
|
tnew::DateTime
|
|
HelloTime(s) = new(s, now())
|
|
end
|
|
|
|
sayhello(hlo) = println("Hello to this world, $(hlo.name)!")
|
|
|
|
sayhello(hlo::HelloTime) = println("It is now $(now()). Hello from back in $(hlo.tnew), $(hlo.name)!")
|
|
|
|
h1 = HelloWorld("world")
|
|
h2 = HelloTime("new world")
|
|
|
|
sayhello(h1)
|
|
sayhello(h2)
|
|
|
|
fh = open("objects.dat", "w")
|
|
serialize(fh, h1)
|
|
serialize(fh,h2)
|
|
close(fh)
|
|
|
|
sleep(10)
|
|
|
|
fh = open("objects.dat", "r")
|
|
hh1 = deserialize(fh)
|
|
hh2 = deserialize(fh)
|
|
close(fh)
|
|
|
|
sayhello(hh1)
|
|
sayhello(hh2)
|