Sobes.tech
Junior

Фарқияти байни var ва dynamic дар Dart чист?

sobes.tech AI

Ҷавоб аз AI

var муайян мекунад, ки тағйирёбандае, ки навъи он автоматӣ муайян карда мешавад, аз рӯи арзиши таъиншуда ва боқӣ мемонад. dynamic муайян мекунад, ки тағйирёбандае, ки навъи он метавонад дар вақти иҷрои барнома тағйир ёбад.

Хусусият var dynamic
Таҳин кардани навъ Дар вақти компиляция (статикӣ) Дар вақти иҷро (динемикӣ)
Тавзеҳоти навъ Пас аз оғоз кардан имконнопазир Дар ҳар вақт имконпазир
Санҷиши навъ Дар вақти компиляция анҷом дода мешавад Дар вақти иҷро анҷом дода мешавад
Самаранокӣ Беҳтарин Мумкин аст каме пасттар бошад бо сабаби санҷиши дар вақти иҷро

Масалан истифодаи var:

// Навъи x ҳамчун int дар вақти компиляция муайян шудааст
var x = 10;
// Сатрҳои зерин хатои компиляцияро ба вуҷуд меоранд,
// зеро навъи x аллакай ҳамчун int муайян шудааст
// x = "салом";

Масалан истифодаи dynamic:

// Навъи y метавонад дар вақти иҷро тағйир ёбад
dynamic y = 10;
// ҳоло y навъи String аст
y = "салом";
// ҳоло y навъи bool аст
y = true;

Истифодаи var беҳтар аст, вақте ки навъи тағйирёбанда аз қабл маълум аст, зеро он бехатарии навъҳоро таъмин мекунад ва иҷрои беҳтарро медиҳад. dynamic бояд танҳо дар ҳолатҳои воқеӣ истифода шавад, ки навъ то вақти иҷрои барнома маълум нест (масалан, бо JSON ё рефлексия кор кардан), аммо ин метавонад ба хатоҳои дар вақти иҷрои оварда расонад, агар амалҳо дар рӯи арзиши навъи номувофиқ анҷом дода шаванд.