কোনও ফাংশন / পদ্ধতির 'স্পেক' এর নাম কী?


21

আমি নিশ্চিত যে কোনও ফাংশন / পদ্ধতির 'স্পেক' এর জন্য একটি বিশেষ নাম রয়েছে। এটি এমন একটি শব্দ যা বোঝায়

  • এটি কত আর্গুমেন্ট লাগে
  • যুক্তি ক্রম
  • কোন যুক্তি alচ্ছিক

এর জন্য কি কোনও নাম আছে?


2
কয়েকটি আলাদা ধরণের "চশমা" রয়েছে। আপনি যুক্তির ধরণ, আদেশ এবং প্রয়োজনীয়তার উল্লেখ করেন। রিটার্ন টাইপের সাথে একসাথে নেওয়া, এটিকে টাইপ স্বাক্ষর বলে। আপনি কি ফাংশনের অংশটির নামটি বিবেচনা করেন? ক্লাস, প্যাকেজ, মডিউল ইত্যাদির মতো এর নামস্থানটি কীভাবে? এই স্পিকারটি কি প্রোগ্রামার বা মেশিনের জন্য? আমার উত্তর দেখুন।
kdbanman

4
আমি অবাক হয়েছি এই প্রশ্নের চারটি কাছাকাছি ভোট রয়েছে - এটি পুরোপুরি বৈধ প্রশ্ন আইএমএইচও, এবং বেশ জবাবদিহি করা (বাস্তবে এর উত্তর ইতিমধ্যে দেওয়া হয়েছে)।
সেলসেকে

@ ক্যালাম, দয়া করে আপনার প্রশ্নটি কম অস্পষ্ট হওয়ার জন্য সম্পাদনা করুন যাতে এটি অগ্রাহ্য হতে পারে। আপনি একটি নির্দিষ্ট ভাষা নিয়ে উদ্বিগ্ন? একটি মেশিন স্পেক বা একটি প্রোগ্রামার স্পেক? কল করার জন্য একটি চক্র বা বাস্তবায়নের জন্য একটি চশমা?
kdbanman 24'15

1
@kdbanman আমি কেবল "স্বাক্ষর" শব্দটি মনে করার চেষ্টা করছিলাম। এটা অস্পষ্ট নয়। এটি ভাষা-নির্দিষ্ট নয়। উত্তর দেওয়া হয়েছে। ঠিক আছে.
কলম্ব

@ কলম, এটাই আমি ভেবেছিলাম। উত্তর দেওয়ার জন্য আপনাকে ধন্যবাদ।
kdbanman

উত্তর:


47

সাধারণত একে টাইপ সিগনেচার বলা হয় ।

কোনও ধরণের স্বাক্ষরে ফাংশনটির রিটার্নের ধরণ, আর্গুমেন্টের সংখ্যা, আর্গুমেন্টের ধরণ, বা ত্রুটিগুলি এটি ফিরে যেতে পারে।


6
সাধারণত? আমি "প্রোটোটাইপ" করতে অভ্যস্ত। যা দৃশ্যত টাইপ স্বাক্ষর প্লাস নাম - en.wikipedia.org/wiki/Function_prototype
ShadSterling

14
@ পলিয়ারজিক, স্বাক্ষর প্রোটোটাইপের চেয়ে বেশি সাধারণ (এবং এই ক্ষেত্রে আরও সঠিক): একটি প্রোটোটাইপ স্বাক্ষর ঘোষণা করে । বিশেষত, "প্রোটোটাইপ" প্রয়োগ না করেই ঘোষণাকে বোঝায়, যেমন একটি জাভা বা সি # পদ্ধতিতে ঘোষণায় interface, বা একটি শিরোনাম ফাইলটিতে সি / সি ++ ফাংশন ঘোষণার (আক্ষরিকভাবে বলা হয় prototype)।
kdbanman

12
এছাড়াও, আর্টিটি কেবলমাত্র যুক্তি সংখ্যার জন্য কম ব্যবহৃত শব্দ।
সেবি

^ ওহ, এটি একটি আকর্ষণীয়! আমি মনে রাখতে হবে যে যখন আমি জেএসে ছিটকে যাই, যেহেতু আমার কাছে কেবল আমাকে গাইড করার পক্ষে যুক্তি গণনা করা হয়, প্রকার নয়।
আন্ডারস্কোর_

23

টিএল; ডিআর আপনি সম্ভবত কোনও ফাংশনের স্বাক্ষর (বা পদ্ধতি স্বাক্ষর) সম্পর্কে কথা বলছেন যার একটি অংশ স্বাক্ষর।

তবে সত্যিকার অর্থে আপনি কোন ফাংশন "স্পেক" বিবেচনা করেন তার উপর নির্ভর করে। আমি এটি "প্রোগ্রামারকে কোনও ফাংশন কল করার জন্য প্রয়োজনীয় সমস্ত তথ্য" হিসাবে ব্যাখ্যা করি। এর মধ্যে ফাংশনটির নাম, প্যারামিটারের ধরন, ক্রম এবং প্রয়োজনীয়তা, সম্ভবত রিটার্নের ধরণ এবং সম্ভবত সেই ফাংশনের নেমস্পেসও অন্তর্ভুক্ত রয়েছে।

তবে এই সমস্ত জিনিসগুলি প্রয়োজনীয় কিনা (বা এমনকি ভালভাবে সংজ্ঞায়িত) আপনি যে ভাষা / পরিবেশ ব্যবহার করছেন তার উপর নির্ভর করে। এছাড়াও, আপনি যদি কোনও মেশিনকে একটি ফাংশন কল করার জন্য প্রয়োজনীয় সমস্ত তথ্য "এ সংজ্ঞাটি পরিবর্তন করেন , তবে অনুমিতিটি সম্ভবত আলাদা 1

কড়া কথায় বলতে গেলে, কোনও ফাংশন (বা পদ্ধতি) স্বাক্ষর একটি সামঞ্জস্যপূর্ণ শব্দ নয়, 2, 3 এমনকি একই ভাষার মধ্যে। 4, 5, 6, 7 তবে এটি অবশ্যই আপনি যে শব্দটির সন্ধান করছেন এটি এটি প্রায় কোনও প্রোগ্রামারই বুঝতে পারবেন।


  1. সি ++ স্পেস ড্রাফ্ট এন 337, সংজ্ঞা 1.3.17, স্বাক্ষরটিতে রিটার্নের ধরণ অন্তর্ভুক্ত নয়, কারণ ফাংশনটি সমাধান করার প্রয়োজন হয় না।

  1. "স্বাক্ষর" এর মধ্যে নেমস্পেসের তথ্য অন্তর্ভুক্ত নয়
  2. "স্বাক্ষর" ব্যতিক্রম মত সংশোধনকারীদের অন্তর্ভুক্ত public, staticইত্যাদি

  1. সি ++ "স্বাক্ষরগুলি" রিটার্নের ধরণের অন্তর্ভুক্ত করে না
  2. সি ++ "স্বাক্ষর" কি রিটার্ন টাইপ অন্তর্ভুক্ত।
  3. সি ++ "স্বাক্ষরগুলি" রিটার্নের ধরণের অন্তর্ভুক্ত করে না, যদি না ফাংশনটি কোনও টেম্পলেটটির বিশেষীকরণ হয়।
  4. সি ++ "স্বাক্ষর" এর মধ্যে নেমস্পেস (স্কোপ) তথ্য এবং "অন্যান্য বিবিধ" স্টাফ অন্তর্ভুক্ত থাকে ...


আমি অন্তত অন্তর্ভুক্ত করব পদ্ধতিটি যখন তার "স্পেক" সম্পর্কে কথা বলার সময় কী করে। দিনের ফোকাসের উপর নির্ভর করে পদ্ধতিটি বাস্তবায়নের জন্য প্রয়োজনীয় যা কিছু অতিরিক্ত তথ্য আমি অন্তর্ভুক্ত করতে পারি বা নাও করতে পারি ।
একটি সিভিএন

@ মাইকেল কেরল্লিং, এগুলি বৈধ উদ্বেগ, তবে বেশিরভাগ প্রোগ্রামাররা "স্বাক্ষর" বলে যাবেন সেগুলি থেকে এগুলি বেশ গুরুত্বপূর্ণ dig ফাংশনটি কী করে তা ফাংশনের নামের সাথে অন্তর্ভুক্ত করা উচিত, সুতরাং এটি পরোক্ষভাবে স্বাক্ষরের অংশ। নির্বিশেষে, আমি মনে করি না যে ফাংশন আচরণ বা বাস্তবায়ন প্রশ্নকর্তার উদ্দেশ্য কি। যদি সে পরিণত হয় তবে আমি সে অনুযায়ী সম্পাদনা করব।
kdbanman

স্বাক্ষর হ্যাঁ, "স্পেস" নং। (এফডাব্লুআইডাব্লু, আমি মনে করি আপনার উত্তরটি বেশ ভাল, এবং ভালভাবে উদ্ধৃত হয়েছে))
সিভিএন

সাহায্য করার জন্য ধন্যবাদ. আমি মনে করি না উত্তরটি '' স্পেস 'না' হিসাবে এতটা পরিষ্কার clear এটি অনুমান বলতে কী বোঝায় তার উপর নির্ভর করে - কেউ অবশ্যই অনুমানের যুক্তিসঙ্গত সংজ্ঞা নিয়ে আসতে পারে যার মধ্যে ফাংশন আচরণ এবং বাস্তবায়ন নির্দেশিকা অন্তর্ভুক্ত থাকে। আপনার নিজের উত্তরে এটি করতে আপনাকে স্বাগতম। তবে আমি যেমন বলেছিলাম, আমার মনে হয় না সেগুলিই প্রশ্নকারী জিজ্ঞাসা করেছিল।
kdbanman

1
উত্সাহিত করা হয়েছে, যদিও তা না হলেও language-agnostic, সি ++ উদাহরণগুলি হ'ল (ক) আমার সাথে প্রাসঙ্গিক এবং (খ) যে বিভ্রান্তির প্রায়শই প্রায়শই মানুষের পরিভাষা ঘিরে থাকে তার চিত্রণ
আন্ডারস্কোর_ডে

0

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


যদি প্রশ্নটি কার্যকারিতা / পদ্ধতির "স্পেস" এর নাম হয় তবে এটি সেরা উত্তর। স্বাক্ষরটি নিজে পদ্ধতিটি কী করে সে সম্পর্কে কিছুই জানায় না, অনুমোদিত প্যারামিটারের পরিসীমা, অ-কার্যকরী বাধা ইত্যাদি ...
ch7kor
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.