Sobes.tech
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 չեն հղում օբյեկտին, աղբարկղի հավաքիչը ազատում է հիշողությունը
}