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.2
edited by chrisby
on 2024/03/03 14:50
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,1 +1,59 @@
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 Area(g GeometricObject) float {
12 + switch type(g):
13 + case Square:
14 + return g.length * g.length
15 + case Circle:
16 + return PI * g.radius * g.radius
17 + }
18 +
19 + func Circumference(g GeometricObject) float {
20 + switch type(g):
21 + case Square:
22 + return 4 * g.length
23 + case Circle:
24 + return 2 * PI * g.radius
25 + }
26 +
27 +#### Object-Oriented Style
28 +
29 + class Square {
30 + length float
31 +
32 + constructor(length float) {
33 + this.length = length
34 + }
35 +
36 + func Area() float {
37 + return this.length * this.length
38 + }
39 +
40 + func Circumference() float {
41 + return 4 * this.length
42 + }
43 + }
44 +
45 + class Circle {
46 + radius float
47 +
48 + constructor(radius float) {
49 + this.radius = radius
50 + }
51 +
52 + func Area() float {
53 + return PI * this.radius * this.radius
54 + }
55 +
56 + func Circumference() float {
57 + return 2 * PI * this.radius
58 + }
59 + }