এই প্রশ্নটি সমস্ত শব্দার্থবিজ্ঞান সম্পর্কে
আমি যদি আপনাকে এই ডেটা দিই: 12
এটির ধরন কী? আপনার কাছে নিশ্চিতভাবে জানার কোনও উপায় নেই। একটি পূর্ণসংখ্যা হতে পারে - একটি ভাসা হতে পারে - একটি স্ট্রিং হতে পারে। এই অর্থে এটি খুব "টাইপযুক্ত" ডেটা।
যদি আমি আপনাকে একটি কাল্পনিক ভাষা দিই যা আপনাকে এই ডেটা এবং "সংযুক্তি" এর মতো অপারেটরগুলি ব্যবহার করতে দেয় এবং "ডেটা" টাইপের কিছু স্বেচ্ছাসেবী কিছুটা অপ্রাসঙ্গিক (আমার কাল্পনিক ভাষায়) (উদাহরণস্বরূপ) : সম্ভবত add(12, a)
ফলন 109
যা এর চেয়ে 12
বেশি আসকি মান a
)।
এক সেকেন্ডের জন্য সি কথা বলা যাক। সি চমত্কারভাবে আপনাকে যেকোন তথ্যের যথেচ্ছ টুকরো দিয়ে যা করতে চান তা করতে দেয়। যদি আপনি এমন কোনও ফাংশন ব্যবহার করছেন যা দুটি uint
গুলি লাগে - আপনি যা চান তা কাস্ট করতে এবং পাস করতে পারেন - এবং মানগুলি কেবল uint
এস হিসাবে ব্যাখ্যা করা হবে । সেই অর্থে সি হ'ল "টাইপযুক্ত" (যদি আপনি এটির সাথে এটির আচরণ করেন)।
তবে - এবং ব্রেন্ডনের বক্তব্যটি গ্রহণ করা - যদি আমি আপনাকে বলেছিলাম যে "আমার বয়স 12
" - তবে 12
একটি প্রকার আছে - কমপক্ষে আমরা জানি এটি সংখ্যাসূচক। প্রসঙ্গের সাথে ভাষা নির্বিশেষে সব কিছুরই এক ধরণ রয়েছে।
এই কারণেই আমি শুরুতেই বলেছিলাম - আপনার প্রশ্নটি শব্দার্থবিদ্যার একটি। "টাইপড" এর অর্থ কী? আমি মনে করি ব্রেন্ডন যখন "কোনও স্থির প্রকার নয়" বলেছিলেন তখন তিনি মাথায় পেরেকটি আঘাত করেছিলেন - কারণ এটাই সম্ভবত এটি বোঝাতে পারে। মানুষ প্রাকৃতিকভাবে বিভিন্ন ধরণের জিনিসগুলিকে শ্রেণিবদ্ধ করে। আমরা স্বজ্ঞাতভাবে জানি যে একটি গাড়ী এবং একটি বানরের মধ্যে মৌলিকভাবে আলাদা কিছু আছে - কখনও কখনও এই পার্থক্যগুলি তৈরি করতে শেখানো হয় না।
শুরুতে আমার উদাহরণটিতে ফিরে আসা - এমন একটি ভাষা যা "প্রকারের বিষয়ে চিন্তা করে না" (প্রতি সে-সে) আপনাকে সিন্ট্যাক্স ত্রুটি তৈরি না করেই "" একটি "বয়স" এবং "নাম" যুক্ত করতে দেয় ... তবে তা এর অর্থ এই নয় যে এটি যৌক্তিকরূপে কার্যকর অপারেশন।
জাভাস্ক্রিপ্ট আপনাকে "ত্রুটিগুলি" না বিবেচনা করে সমস্ত ধরণের পাগল কাজ করতে দেয়। এর অর্থ এই নয় যে আপনি যা করছেন তা যুক্তিযুক্তভাবে সাবলীল। বিকাশকারীকে কাজ করার জন্য ধন্যবাদ।
একটি সিস্টেম / ভাষা যা সংকলন / বিল্ড / ব্যাখ্যার সময় "টাইপযুক্ত" বা "গতিশীল টাইপড" টাইপ সুরক্ষা প্রয়োগ করে না?
শব্দার্থবিদ্যা।
সম্পাদনা
আমি এখানে কিছু যুক্ত করতে চেয়েছিলাম কারণ কিছু লোক "হ্যাঁ, তবে জাভাস্ক্রিপ্টের কিছু" প্রকার "রয়েছে বলে মনে হচ্ছে।
অন্য কারও জবাব সম্পর্কে আমার মন্তব্যে আমি বলেছিলাম:
জাভাস্ক্রিপ্টে আমার কাছে "বানর" হিসাবে নির্মিত বস্তু এবং আমি "মানুষ" হিসাবে নির্মিত বস্তুগুলি থাকতে পারি এবং কিছু ফাংশন কেবল "মনুষ্য", অন্যকে কেবল "বানর", এবং অন্যান্যদের জন্য পরিচালনার জন্য ডিজাইন করা যেতে পারে এবং অন্যরা কেবল "থিংস উইথ আর্মস" এর উপর। "অস্ত্র সহ জিনিস" যেমন জাভাস্ক্রিপ্টের ("ডায়নামিক") এর মতো সমাবেশের ("টাইপড") এর মতো অপ্রাসঙ্গিক হিসাবে এই জাতীয় শ্রেণীর অবজেক্টগুলিকে ভাষাটি কখনও বলা হয়েছে বা না বলা হয়েছে। এটি সমস্ত যৌক্তিক অখণ্ডতার বিষয় - এবং কেবল ত্রুটিটি এমন কোনও কিছু ব্যবহার করা হবে যার সেই পদ্ধতিতে অস্ত্র নেই।
সুতরাং, আপনি যদি জাভাস্ক্রিপ্টকে অভ্যন্তরীণভাবে কিছু "ধরণের ধারণা" বলে বিবেচনা করেন - এবং তাই "গতিশীল ধরণের" - এবং এটি কোনওভাবে "একটি টাইপ করা সিস্টেম থেকে আলাদা" বলে মনে করেন - আপনার উপরের উদাহরণ থেকে দেখে নেওয়া উচিত যে কোনও "ধারণা" প্রকারভেদ "এটি অভ্যন্তরীণভাবে সত্যিই অপ্রাসঙ্গিক has
সি # এর সাথে একই ক্রিয়াকলাপটি সম্পাদন করতে, উদাহরণস্বরূপ, আমি একটি ইন্টারফেস ICreatureWithArms
বা অন্য কিছু অনুরূপ দরকার হয়েছিল। জাভাস্ক্রিপ্টে তেমন নয় - সি বা এএসএম তেমন নয়।
স্পষ্টতই, জাভাস্ক্রিপ্টে "প্রকারের" আদৌ কোনও বোঝাপড়া আছে কিনা তা অপ্রাসঙ্গিক।