මෙම new
ජාවා, ජාවාස්ක්රිප්ට්, සහ C # වගේ භාෂා ඉඟි පද පන්ති නව උදාහරණයක් නිර්මාණය කරයි.
මෙම වාක්ය ඛණ්ඩය සී ++ වෙතින් උරුම වී ඇති බව පෙනේ, එහිදී new
විශේෂයෙන් භාවිතා කරනුයේ පංතියක නව අවස්ථාවක් ගොඩවල් මත වෙන් කිරීම සඳහා වන අතර නව අවස්ථාව වෙත දර්ශකයක් ආපසු එවන්න. C ++ හි, වස්තුවක් තැනීමට ඇති එකම ක්රමය මෙය නොවේ. භාවිතා නොකර ඔබට තොගයක් මත වස්තුවක් සෑදිය හැකිය new
- ඇත්ත වශයෙන්ම, මෙම වස්තූන් තැනීමේ ක්රමය C ++ හි වඩාත් සුලභ වේ.
එබැවින්, C ++ පසුබිමකින් එන විට, new
ජාවා, ජාවාස්ක්රිප්ට් සහ සී # වැනි භාෂාවල මූල පදය මට ස්වභාවික හා පැහැදිලිව පෙනෙන්නට තිබුණි. ඊට පස්සේ මම පයිතන් ඉගෙන ගන්න පටන් ගත්තා new
. පයිතන්හිදී, නිදසුනක් ලෙස ඉදිකරන්නේ ඉදිකිරීම්කරු ඇමතීමෙන් ය:
f = Foo()
මුලදී, මෙය මට ටිකක් off ත් වූ බවක් පෙනෙන්නට තිබුණි, එය සිදු වන තුරු පයිතන්ට කිසිදු හේතුවක් නොමැති බව මට පෙනී ගියේය new
, මන්ද සෑම දෙයක්ම වස්තුවක් බැවින් විවිධ ඉදිකිරීම් වාක්ය ඛණ්ඩ අතර ව්යාකූලත්වයක් අවශ්ය නොවේ.
ඒත් එක්කම මම හිතුවා - ඇත්තටම new
ජාවා වල තේරුම මොකක්ද? අප කිව යුත්තේ ඇයි Object o = new Object();
? ඇයි නැත්තේ Object o = Object();
? C ++ හි අනිවාර්යයෙන්ම අවශ්යතාවයක් ඇත new
, මන්දයත් අප ගොඩවල් මත වෙන් කිරීම සහ තොගයේ වෙන් කිරීම අතර වෙනස හඳුනාගත යුතු බැවිනි, නමුත් ජාවාහි සියලු වස්තූන් ගොඩවල් මත ගොඩනගා ඇත, එබැවින් new
මූල පදය පවා ඇත්තේ ඇයි ? එම ප්රශ්නයම ජාවාස්ක්රිප්ට් සඳහාද විමසිය හැකිය. මට එතරම් හුරු නැති C # හි, new
වස්තු වර්ග සහ අගය වර්ග අතර වෙනස හඳුනා ගැනීමේදී යම් අරමුණක් තිබිය හැකි යැයි මම සිතමි , නමුත් මට විශ්වාස නැත.
කෙසේ වෙතත්, මට පෙනී යන්නේ C ++ ට පසුව පැමිණි බොහෝ භාෂාවන් සරලවම “උරුම” කර ඇති බවයි new
- එය ඇත්ත වශයෙන්ම අවශ්ය නොවී. එය බොහෝ දුරට ගවේෂණාත්මක මූල පදයක් වැනි ය . කිසිම හේතුවක් නිසා අපට එය අවශ්ය නොවන බව පෙනේ, නමුත් එය එහි තිබේ.
ප්රශ්නය: මම මේ ගැන නිවැරදිද? එසේත් නැතිනම් new
C ++ - ජාවා, ජාවාස්ක්රිප්ට් සහ සී # වැනි මතකයෙන් පාලනය වන භාෂාවන් විය යුතු නමුත් පයිතන් නොවීමට බලවත් හේතුවක් තිබේද?
f
ගැලවී නොයන විට , සිරස් ඉඩ වෙන් කරන්න.
f
සංවෘත ශ්රිතය නැවත පැමිණෙන විට GC හට වස්තුව එකතු කළ හැකි බව ඔප්පු කිරීම හුදෙක් කාරණයකි .
new
මූලික පදය ඇත්තේ මන්ද යන්නයි . ඇත්ත වශයෙන්ම මට නව විචල්ය, මෝඩ සම්පාදකයක් නිර්මාණය කිරීමට අවශ්යයි! ඒ හොඳ භාෂා මගේ මතය වැනි කාරක රීති ඇතැයිf = heap Foo()
,f = auto Foo()
.