Version 2.4 by chrisby on 2024/03/03 14:45

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