ডার্টে আপনার "নতুন" কীওয়ার্ডটি ব্যবহার করা দরকার?


95

আমার ডার্ট ভিত্তিক অ্যাপ্লিকেশনটিতে আমি কেবল লক্ষ্য করেছি যে আমি newকীওয়ার্ডটি বাদ দিতে পারি এবং সবকিছু ঠিকঠাক কাজ করে।

এর পরিবর্তে final widget = new Widget();আমিও ব্যবহার করতে পারি final widget = Widget();

কোডে এর কোনও প্রভাব আছে?

উত্তর:


120

না, তা হয় না। সঙ্গে ডার্ট 2 (আরও তথ্য ঘোষণার জন্য ক্লিক করুন)new এবং constকীওয়ার্ড তৈরি করা হয়েছে ঐচ্ছিক

এর অর্থ এটি নিজের new Widget()মতো Widget()করে ঠিক একই কাজ করে।


constশব্দ, কিন্তু, একটি মান যে একটি হবে না পরিবর্তন করতে পারেন constএকটি থেকে পরোক্ষভাবে const
সুতরাং আপনাকে constযখন প্রয়োজন হবে স্পষ্টভাবে নির্দিষ্ট করতে হবে ।


6
ডার্ট দলকে আপাতত কিছুটা পিছিয়ে নিতে হয়েছিল এবং এমন কিছু পরিস্থিতি রয়েছে যেখানে এখনও প্রয়োজন newবা constপ্রয়োজন (আমি উদাহরণ বা বিধিগুলি মনে করি না)। এটিকে সর্বত্র alচ্ছিক করার জন্য তারা ডার্ট 2 এর পরে আর একটি প্রচেষ্টা করতে পারে।
গন্টার জ্যাচবাউয়ার

4
newপ্রয়োজনীয় কোনও স্থান নেই where আপনি যদি newকোনও সঠিক প্রোগ্রাম থেকে বাদ দেন তবে এটি সর্বদা একইভাবে কাজ করতে থাকবে। আপনি মুছে ফেলেন constবেশিরভাগ ক্ষেত্রেই আপনি হবে যেখানে, একটি কাজ প্রোগ্রাম থেকে তারপর আছে লিখতে constজন্য প্রোগ্রাম বৈধ বলে, এটা এখনও কার্যকর থাকবে। যে কোনও সময় ইতিমধ্যে কোনও constআশেপাশের অভিব্যক্তি রয়েছে, আপনি নেস্টেড কনস্টটিকে বাদ দিতে পারেন।
lrn

20

ডার্ট ২-এ, আপনি যদি কোনও ফাংশনের মতো কোনও কনস্ট্রাক্টরকে, সামনে newবা constসামনে না করে অনুরোধ করেন, তবে এটি ব্যবহারের সমতুল্য new। আপনি যদি কনস্টের জন্য প্রার্থনা চান তবে আপনার constসামনে রাখা উচিত ।

কনস্ট কনফারেন্সের অভ্যন্তরে আপনাকে constআবার লেখার দরকার নেই এবং কিছু প্রসঙ্গে যেগুলি কনস্ট এক্সপ্রেশন প্রয়োজন (যেমন স্যুইচ কেস এক্সপ্রেশন এবং কনস্ট ভেরিয়েবলের ইনিশিয়েলাইজার) প্রয়োজন হয়, আপনার এমনকি বাইরের কনস্টের প্রয়োজন হয় না।

সুতরাং আপনার কখনও লেখার দরকার নেই new

ডার্ট ল্যাঙ্গুয়েজ টিম এমন অভিব্যক্তিটি অনুমোদন করতে চায় যেখানে আপনি যে কোনওটি সন্নিবেশ করাতে পারেন newবা constএখনও অনুরোধটি সঠিক হতে পারে (এটি ধ্রুবক যুক্তিযুক্ত কনস্ট্রাক্টর) constপরিবর্তে newডার্ট 2-এর প্রাথমিক আপডেটে সন্নিবেশ করানোর জন্য ডিফল্টরূপে রাখতে পারেন আমি লেখার সুপারিশ newসামনে Object(), বা অন্য কোন const কন্সট্রাকটর যেখানে আপনি প্রয়োজন বস্তুর একটি নতুন দৃষ্টান্ত যাবে। এটি একটি খুব বিরল কেস, সাধারণত আপনি নিজের অপরিবর্তনীয় বস্তুর পরিচয় সম্পর্কে চিন্তা করেন না (এজন্য সন্নিবেশ constকরা ভাল ধারণা হিসাবে বিবেচিত হয়)।



5

newশব্দ এখন ডার্ট 2. হিসাবে ঐচ্ছিক করা হয়েছে, একটি বর্গ কলিং সবসময় যে বর্গ একটি নতুন দৃষ্টান্ত ফিরে আসবে। আমার সুপারিশ অনুসারে, আপনি এটি কোনও বিন্যাস সংজ্ঞার বাইরে ব্যবহার করতে পারেন ( রক্ষণশীল নয় ) তবে বিন্যাসের অভ্যন্তরে বাদ দিতে পারেন।

আরও একটি বিষয় যা আমি আপনাদের সাথে ভাগ করে নিতে চাই তা হ'ল উইজেটগুলি ঘোষণার সময় আপনি যদি কীওয়ার্ড ব্যবহার করেন newবা উইজেট বডি কোডটি ভেঙে বাড়াতে এবং ব্যবহার করতে পারেন এমন + আইকনও দেখতে সক্ষম হন । আপনি যখন একই ফাইলটিতে অন্য উইজেট কোডটিতে কাজ করার সময় ডার্ট ফাইলে বাকী উইজেট কোডটি ভেঙে / লুকিয়ে রাখতে চান তখন এটি কার্যকর হয় usefulconst


সেই ধসের
জিনিসটিতে

4
ধসে পড়া আচরণটি আইডিই-নির্দিষ্ট হবে be কোনটি (গুলি) এর ক্ষেত্রে এটি প্রযোজ্য তা আপনার স্পষ্টভাবে জানিয়ে দেওয়া উচিত।
জেমসডলিন

4
এছাড়াও, "একটি শ্রেণি কল করা" (যার মাধ্যমে আমি ধরে নিই যে আপনি বোঝাতে চাইছেন "শ্রেণীর নির্মাণকারীকে আহ্বান") বর্গের কোনও নতুন উদাহরণ সর্বদা ফিরে আসে না। আপনি যদি কারখানার কনস্ট্রাক্টরকে অনুরোধ করেন তবে আপনি কোনও বিদ্যমান উদাহরণ ফিরে পেতে পারেন । এই কারণেই newনিরুৎসাহিত করা হচ্ছে: এটি ব্যবহার করে দেখে মনে হচ্ছে এটি নিঃশর্তভাবে একটি নতুন উদাহরণ তৈরি করে যখন এটি নাও পারে।
জেমসডলিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.