tests: interface: minor fixes
parent
fd0f8d06f8
commit
50351eded8
|
@ -26,6 +26,11 @@ fn (c Cat) name_detailed(pet_name string) string {
|
|||
return '$pet_name the ${typeof(c)}, breed:${c.breed}'
|
||||
}
|
||||
|
||||
// utility function to convert to string, as a sample
|
||||
fn (c Cat) str() string {
|
||||
return 'Cat: $c.breed'
|
||||
}
|
||||
|
||||
fn (d Dog) speak(s string) {
|
||||
assert s == 'Hi !'
|
||||
println('woof')
|
||||
|
@ -40,6 +45,9 @@ fn (d Dog) name_detailed(pet_name string) string {
|
|||
return '$pet_name the ${typeof(d)}, breed:${d.breed}'
|
||||
}
|
||||
|
||||
// do not add to Dog the utility function 'str', as a sample
|
||||
|
||||
|
||||
fn test_todo() {
|
||||
if true {}
|
||||
else {}
|
||||
|
@ -129,10 +137,18 @@ interface Animal {
|
|||
speak(s string)
|
||||
}
|
||||
|
||||
// utility function to convert to string, as a sample
|
||||
fn (a Animal) str() string {
|
||||
return 'Animal: type:${typeof(a)}, name:' + a.name() + '.'
|
||||
}
|
||||
|
||||
fn test_interface_array() {
|
||||
println('Test on array of animals ...')
|
||||
mut animals := []Animal{}
|
||||
animals = [ Cat{}, Dog{} ]
|
||||
animals = [ Cat{}, Dog{breed: 'Labrador Retriever'} ]
|
||||
animals << Cat{}
|
||||
assert true
|
||||
println('Animals array contains: ${animals.str()}') // explicit call to 'str' function
|
||||
println('Animals array contains: ${animals}') // implicit call to 'str' function
|
||||
assert animals.len == 3
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue