Last modified by chrisby on 2024/03/03 17:01

From version 1.1
edited by chrisby
on 2024/03/03 14:40
Change comment: There is no comment for this version
To version 3.3
edited by chrisby
on 2024/03/03 14:57
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,1 +1,49 @@
1 -```
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 + }