-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path19-intersection-types.som
More file actions
82 lines (68 loc) · 3.22 KB
/
19-intersection-types.som
File metadata and controls
82 lines (68 loc) · 3.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// Intersection Types - Phase 3 Feature
чоп.сабт("=== Намунаи Intersection Types ===");
// Define interfaces for intersection
интерфейс Корбар {
ном: сатр;
синну_сол: рақам;
}
интерфейс Админ {
сатҳи_дастрасӣ: сатр;
рамзи_убур: сатр;
}
интерфейс Муаллим {
фанн: сатр;
таҷриба: рақам;
}
// Intersection type combining multiple interfaces
тағйирёбанда супер_корбар: Корбар & Админ = {
ном: "Аҳмад Аҳмадов",
синну_сол: 35,
сатҳи_дастрасӣ: "олӣ",
рамзи_убур: "рамзи_махфӣ123"
};
чоп.сабт("Супер корбар:");
чоп.сабт("Ном: " + супер_корбар.ном);
чоп.сабт("Синну сол: " + супер_корбар.синну_сол);
чоп.сабт("Сатҳи дастрасӣ: " + супер_корбар.сатҳи_дастрасӣ);
// Triple intersection
тағйирёбанда муаллими_админ: Корбар & Админ & Муаллим = {
ном: "Фотима Раҳимова",
синну_сол: 42,
сатҳи_дастрасӣ: "миёна",
рамзи_убур: "муаллим456",
фанн: "Математика",
таҷриба: 15
};
чоп.сабт("\nМуаллими админ:");
чоп.сабт("Ном: " + муаллими_админ.ном);
чоп.сабт("Фанн: " + муаллими_админ.фанн);
чоп.сабт("Таҷриба: " + муаллими_админ.таҷриба + " сол");
чоп.сабт("Сатҳи дастрасӣ: " + муаллими_админ.сатҳи_дастрасӣ);
// Function using intersection types
функция намоиши_маълумоти_пурра(корбар: Корбар & Админ): сатр {
бозгашт корбар.ном + " (" + корбар.синну_сол + " сола) - " + корбар.сатҳи_дастрасӣ;
}
чоп.сабт("\nМаълумоти пурра:");
чоп.сабт(намоиши_маълумоти_пурра(супер_корбар));
чоп.сабт(намоиши_маълумоти_пурра(муаллими_админ));
// Intersection with primitive types and objects
интерфейс Маҳсулот {
ном: сатр;
нарх: рақам;
}
интерфейс Тавсиф {
тавсиф: сатр;
ранг: сатр;
}
тағйирёбанда маҳсулоти_пурра: Маҳсулот & Тавсиф = {
ном: "Телефони зироқ",
нарх: 1500,
тавсиф: "Телефони замонавӣ бо имкониятҳои зиёд",
ранг: "сиёҳ"
};
чоп.сабт("\nМаҳсулоти пурра:");
чоп.сабт("Ном: " + маҳсулоти_пурра.ном);
чоп.сабт("Нарх: " + маҳсулоти_пурра.нарх + " сомонӣ");
чоп.сабт("Тавсиф: " + маҳсулоти_пурра.тавсиф);
чоп.сабт("Ранг: " + маҳсулоти_пурра.ранг);
чоп.сабт("\nIntersection types - якҷоя кардани якчанд интерфейс дар як объект");