Junior — Middle
Ինչպե՞ս է Dart-ը կառավարում հղումները ավանդական ցուցիչներ չօգտագործելով։
sobes.tech AI
Պատասխան AI-ից
Dart լեզվում ավանդական ցուցիչներ չկան, ինչպես C կամ C++ լեզուներում: Փոխարենը, լեզուն օգտագործում է օբյեկտների հղումներ, որոնք ավտոմատ կերպով կառավարվում են աղբարկղի հավաքման համակարգով (garbage collection):
Երբ ստեղծում եք օբյեկտ, փոփոխականը պարունակում է այդ օբյեկտի հղում հիշողության մեջ, բայց այս հղումը չի հանդիսանում հասցեային հաշվարկով ցուցիչ; այն ամփոփված է և անվտանգ: Աղբարկղի հավաքիչը հետևում է, թե որ օբյեկտները հասանելի են հղումների միջոցով և ավտոմատ կերպով ազատում է հիշողությունը, երբ օբյեկտները դառնում են անհասանելի:
Օրինակ՝
class Person {
String name;
Person(this.name);
}
void main() {
var p1 = Person('Alice'); // p1 պարունակում է հղում Person օբյեկտին
var p2 = p1; // p2 այժմ հղում է նույն օբյեկտին
p1 = null; // օբյեկտը դեռ հասանելի է p2-ի միջոցով
// Երբ ոչ p1, ոչ p2 չեն հղում օբյեկտին, աղբարկղի հավաքիչը ազատում է հիշողությունը
}