Version 3.3 by chrisby on 2024/03/03 14:57

Show last authors
1 ### Data Structure Style
2
3 type Square struct {
4 length float
5 }
6
7 type Circle struct {
8 radius float
9 }
10
11 func Circumference(g Object) float {
12 switch type(g):
13 case Square:
14 return 4 * g.length
15 case Circle:
16 return 2 * PI * g.radius
17 }
18
19 *
20
21 #### Object-Oriented Style
22
23 interface GeometricObject {
24 Circumference() float
25 }
26
27 class Square implements GeometricObject {
28 length float
29
30 constructor(length float) {
31 this.length = length
32 }
33
34 func Circumference() float {
35 return 4 * this.length
36 }
37 }
38
39 class Circle implements GeometricObject {
40 radius float
41
42 constructor(radius float) {
43 this.radius = radius
44 }
45
46 func Circumference() float {
47 return 2 * PI * this.radius
48 }
49 }