Type conversion
কম্পিউটার বিজ্ঞানে, টাইপ রূপান্তর, টাইপ কাস্টিং, টাইপ বলপ্রয়োগ এবং টাইপ জগলিং হল একটি ডেটা টাইপ থেকে অন্য ডেটা টাইপে অভিব্যক্তি পরিবর্তনের বিভিন্ন উপায়। একটি উদাহরণ হ 'ল একটি পূর্ণসংখ্যার মানকে একটি ভাসমান বিন্দু মানে রূপান্তর করা বা স্ট্রিং হিসাবে এর পাঠ্য উপস্থাপনা এবং তদ্বিপরীত। টাইপ রূপান্তরগুলি টাইপ হায়ারার্কি বা ডেটা উপস্থাপনের নির্দিষ্ট বৈশিষ্ট্যগুলির সুবিধা নিতে পারে। একটি প্রকার রূপান্তরের দুটি গুরুত্বপূর্ণ দিক হল এটি অন্তর্নিহিতভাবে (স্বয়ংক্রিয়ভাবে) বা স্পষ্টভাবে ঘটে কিনা এবং অন্তর্নিহিত তথ্য উপস্থাপনাটি একটি উপস্থাপনা থেকে অন্যটিতে রূপান্তরিত হয় কিনা, বা প্রদত্ত উপস্থাপনাটি কেবল অন্য তথ্য প্রকারের উপস্থাপনা হিসাবে পুনরায় ব্যাখ্যা করা হয় কিনা। সাধারণভাবে, আদিম এবং যৌগিক তথ্য প্রকার উভয়ই রূপান্তরিত করা যেতে পারে। প্রকারগুলি কীভাবে রূপান্তরিত করা যায় সে সম্পর্কে প্রতিটি প্রোগ্রামিং ভাষার নিজস্ব নিয়ম রয়েছে। শক্তিশালী টাইপিং সহ ভাষাগুলি সাধারণত সামান্য অন্তর্নিহিত রূপান্তর করে এবং উপস্থাপনাগুলির পুনর্বিবেচনাকে নিরুৎসাহিত করে, অন্যদিকে দুর্বল টাইপিং সহ ভাষাগুলি ডেটা প্রকারের মধ্যে অনেক অন্তর্নিহিত রূপান্তর সম্পাদন করে। দুর্বল টাইপিং ভাষা প্রায়শই সংকলককে কোনও ডেটা আইটেমকে নির্বিচারে বিভিন্ন উপস্থাপনা হিসাবে ব্যাখ্যা করতে বাধ্য করে-এটি একটি অ-স্পষ্ট প্রোগ্রামিং ত্রুটি হতে পারে, বা অন্তর্নিহিত হার্ডওয়্যারের সাথে সরাসরি মোকাবিলা করার জন্য একটি প্রযুক্তিগত পদ্ধতি হতে পারে। বেশিরভাগ ভাষায়, বলপ্রয়োগ শব্দটি সংকলনের সময় বা রান টাইমের সময় একটি অন্তর্নিহিত রূপান্তর বোঝাতে ব্যবহৃত হয়। উদাহরণস্বরূপ, পূর্ণসংখ্যা এবং ভাসমান বিন্দু সংখ্যার মিশ্রণের একটি অভিব্যক্তিতে (যেমন 5 + 0.1), সংকলক স্বয়ংক্রিয়ভাবে পূর্ণসংখ্যার উপস্থাপনাকে ভাসমান বিন্দু উপস্থাপনায় রূপান্তরিত করবে যাতে ভগ্নাংশ হারিয়ে না যায়। সুস্পষ্ট ধরনের রূপান্তরগুলি হয় অতিরিক্ত কোড লিখে নির্দেশ করা হয় (যেমন। টাইপ আইডেন্টিফায়ার যোগ করা বা বিল্ট-ইন রুটিন কল করা) অথবা কম্পাইলার ব্যবহারের জন্য রূপান্তর রুটিন কোডিং করে যখন এটি অন্যথায় টাইপের অসামঞ্জস্যের সাথে থামবে। বেশিরভাগ এএলজিওএল-সদৃশ ভাষায়, যেমন পাস্কাল, মডুলা-2, অ্যাডা এবং ডেলফি, রূপান্তর এবং কাস্টিং স্পষ্টভাবে ভিন্ন ধারণা। এই ভাষাগুলিতে, রূপান্তর বলতে বোঝায় একটি ডেটা টাইপ স্টোরেজ ফর্ম্যাট থেকে অন্যটিতে একটি মানকে অন্তর্নিহিতভাবে বা স্পষ্টভাবে পরিবর্তন করা, যেমন। একটি 32-বিট পূর্ণসংখ্যার জন্য একটি 16-বিট পূর্ণসংখ্যা। সংরক্ষণের প্রয়োজনীয়তা রূপান্তরের ফলে পরিবর্তিত হতে পারে, যার মধ্যে নির্ভুলতা বা ছাঁটাইয়ের সম্ভাব্য ক্ষতি রয়েছে। অন্যদিকে, ঢালাই শব্দটি এক প্রকার থেকে অন্য প্রকারের মানের প্রতিনিধিত্বকারী বিট প্যাটার্নের ব্যাখ্যাকে স্পষ্টভাবে পরিবর্তন করতে বোঝায়। উদাহরণস্বরূপ, 32টি সংলগ্ন বিটকে 32টি বুলিয়ান, একটি 4-বাইট স্ট্রিং, একটি স্বাক্ষরহীন 32-বিট পূর্ণসংখ্যা বা একটি আই. ই. ই. ই একক নির্ভুলতা ভাসমান বিন্দু মান হিসাবে বিবেচনা করা যেতে পারে। যেহেতু সঞ্চিত বিটগুলি কখনই পরিবর্তিত হয় না, তাই প্রোগ্রামারকে অবশ্যই নিম্ন স্তরের বিবরণ যেমন উপস্থাপনা বিন্যাস, বাইট অর্ডার এবং সারিবদ্ধকরণের প্রয়োজনীয়তা জানতে হবে, যাতে অর্থবহভাবে কাস্ট করা যায়। ভাষাগুলির সি পরিবার এবং এএলজিওএল 68-এ, কাস্ট শব্দটি সাধারণত একটি স্পষ্ট প্রকারের রূপান্তরকে বোঝায় (একটি অন্তর্নিহিত রূপান্তরের বিপরীতে), যা এটি একটি বিট-প্যাটার্নের পুনরায় ব্যাখ্যা বা একটি বাস্তব ডেটা উপস্থাপনা রূপান্তর কিনা তা নিয়ে কিছুটা অস্পষ্টতা সৃষ্টি করে। আরও গুরুত্বপূর্ণ হল একটি পয়েন্টার দ্বারা কোন ডেটা টাইপ (বা শ্রেণী) অবস্থিত এবং বস্তু (শ্রেণী) উত্তরাধিকারের মতো ক্ষেত্রে সংকলক দ্বারা একটি পয়েন্টার কীভাবে সামঞ্জস্য করা যেতে পারে তার ক্ষেত্রে প্রযোজ্য বহু উপায় এবং নিয়ম। বিভিন্ন ভাষায় স্পষ্ট কাস্টিং আদা আদা একটি জেনেরিক লাইব্রেরি ফাংশন আনচেকড _ কনভার্শন প্রদান করে। সি-সদৃশ ভাষাগুলি ইমপ্লিসিট টাইপ রূপান্তর ইমপ্লিসিট টাইপ রূপান্তর, যা জোরপূর্বক বা টাইপ জগলিং নামেও পরিচিত, সংকলক দ্বারা একটি স্বয়ংক্রিয় টাইপ রূপান্তর। কিছু প্রোগ্রামিং ভাষা সংকলকদের জোরপূর্বক কাজ করার অনুমতি দেয়; অন্যদের এটি প্রয়োজন। একটি মিশ্র-ধরনের অভিব্যক্তিতে, এক বা একাধিক উপপ্রকারের ডেটা রানটাইমে প্রয়োজন অনুযায়ী সুপারটাইপে রূপান্তরিত করা যেতে পারে যাতে প্রোগ্রামটি সঠিকভাবে চলে। উদাহরণস্বরূপ, নিম্নলিখিতটি বৈধ সি ভাষা কোডঃ ডাবল ডি; লং এল; ইন্টি আই; যদি (ডি> আই) ডি = আই; যদি (আই> এল) এল = আই; যদি (ডি = = এল) ডি * = 2; যদিও, এবং বিভিন্ন ডেটা প্রকারের অন্তর্গত, প্রতিবার একটি তুলনা বা অ্যাসাইনমেন্ট কার্যকর করার সময় সেগুলি স্বয়ংক্রিয়ভাবে সমান ডেটা প্রকারে রূপান্তরিত হবে। এই আচরণটি সতর্কতার সাথে ব্যবহার করা উচিত, কারণ অনিচ্ছাকৃত পরিণতি দেখা দিতে পারে। ভাসমান-বিন্দু থেকে পূর্ণসংখ্যায় উপস্থাপনা রূপান্তর করার সময় তথ্য হারিয়ে যেতে পারে, কারণ ভাসমান-বিন্দু মানগুলির ভগ্নাংশ উপাদানগুলি কাটা হবে (শূন্যের দিকে বৃত্তাকার)। বিপরীতভাবে, পূর্ণসংখ্যা থেকে ভাসমান-বিন্দুতে উপস্থাপনাগুলিকে রূপান্তর করার সময় নির্ভুলতা হারিয়ে যেতে পারে, কারণ একটি ভাসমান-বিন্দু প্রকার কিছু পূর্ণসংখ্যা প্রকারের সমস্ত সম্ভাব্য মানকে সঠিকভাবে উপস্থাপন করতে অক্ষম হতে পারে। উদাহরণস্বরূপ, এটি একটি আই. ই. ই. ই 754 একক নির্ভুল প্রকার হতে পারে, যা 16777217 পূর্ণসংখ্যার সঠিক প্রতিনিধিত্ব করতে পারে না, যেখানে একটি 32-বিট পূর্ণসংখ্যার প্রকার করতে পারে। এটি অবাস্তব আচরণের দিকে নিয়ে যেতে পারে, যা নিম্নলিখিত কোড দ্বারা প্রদর্শিত হয়ঃ #include <stdio.h> int মেইন (অকার্যকর) {int i _ মান = 16777217; ফ্লোট f _ মান = 16777216.0; প্রিন্টএফ ("পূর্ণসংখ্যাটি হলঃ% d\n", i _ মান); প্রিন্টএফ ("ফ্লোটটি হলঃ% f\n", f _ মান); প্রিন্টএফ ("তাদের সমতাঃ% d\n", i _ মান = = f _ মান);} যে কম্পাইলারগুলি ফ্লোটগুলিকে আই. ই. ই. ই একক নির্ভুলতা হিসাবে প্রয়োগ করে এবং অন্তত 32 বিট হিসাবে ints, এই কোডটি এই অদ্ভুত প্রিন্ট-আউট দেবেঃ এই অদ্ভুত আচরণটি যখন এর সাথে তুলনা করা হয় তখন ফ্লোটের একটি অন্তর্নিহিত রূপান্তরের কারণে ঘটে। রূপান্তরটি নির্ভুলতার ক্ষতির কারণ হয়, যা তুলনার আগে মানগুলিকে সমান করে তোলে। গুরুত্বপূর্ণ উপায়ঃ ছাঁটাইয়ের কারণ, অর্থাৎ, ভগ্নাংশ অংশ অপসারণ। অঙ্কের বৃত্তাকারকরণ ঘটায়। অতিরিক্ত উচ্চতর অর্ডার বিট হ্রাসের কারণ হতে পারে। টাইপ প্রচার অন্তর্নিহিত ধরনের রূপান্তরের একটি বিশেষ ক্ষেত্র হল টাইপ প্রচার, যেখানে একটি বস্তু স্বয়ংক্রিয়ভাবে অন্য ডেটা টাইপে রূপান্তরিত হয় যা মূল ধরনের একটি সুপারসেটের প্রতিনিধিত্ব করে। প্রচারগুলি সাধারণত লক্ষ্য প্ল্যাটফর্মের গাণিতিক লজিক ইউনিটের (এ. এল. ইউ) স্থানীয় প্রকারের চেয়ে ছোট প্রকারের সাথে, গাণিতিক এবং যৌক্তিক ক্রিয়াকলাপের আগে, এই ধরনের ক্রিয়াকলাপগুলি সম্ভব করার জন্য বা আরও দক্ষতার সাথে ব্যবহার করা হয় যদি এ. এল. ইউ একাধিক প্রকারের সাথে কাজ করতে পারে। সি এবং সি + + বুলিয়ান, অক্ষর, প্রশস্ত অক্ষর, গণনা এবং সংক্ষিপ্ত পূর্ণসংখ্যা প্রকারের বস্তুর জন্য এই ধরনের প্রচার করে যা ইন্টে উন্নীত হয় এবং ফ্লোট প্রকারের বস্তুর জন্য, যা দ্বিগুণ উন্নীত হয়। অন্যান্য ধরনের রূপান্তরের বিপরীতে, প্রচারগুলি কখনই নির্ভুলতা হারায় না বা বস্তুর মধ্যে সঞ্চিত মান পরিবর্তন করে না। জাভাতেঃ int x = 3; ডবল y = 3.5; System.out.println (x + y);// আউটপুট হবে 6.5 এক্সপ্লিসিট টাইপ রূপান্তর, এক্সপ্লিসিট টাইপ রূপান্তর, যাকে টাইপ কাস্টিংও বলা হয়, একটি টাইপ রূপান্তর যা একটি প্রোগ্রামের মধ্যে স্পষ্টভাবে সংজ্ঞায়িত করা হয় (অন্তর্নিহিত টাইপ রূপান্তরের জন্য ভাষার নিয়ম অনুযায়ী স্বয়ংক্রিয়ভাবে করার পরিবর্তে)। এটি প্রোগ্রামের ব্যবহারকারীর দ্বারা অনুরোধ করা হয়। ডাবল দা = 3.3; ডাবল ডিবি = 3.3; ডাবল ডিসি = 3.4; ইন্টি ফলাফল = (ইন্টি) দা + (ইন্টি) ডিবি + (ইন্টি) ডিসি;// ফলাফল = = 9// যদি অন্তর্নিহিত রূপান্তর ব্যবহার করা হয় ("ফলাফল = দা + ডিবি + ডিসি" হিসাবে), ফলাফল 10 এর সমান হবে। রূপান্তরটি সম্পন্ন হওয়ার আগে পরীক্ষা করা হয়, গন্তব্য প্রকারটি উৎস মান ধরে রাখতে পারে কিনা তা দেখার জন্য একটি রানটাইম চেক করা হয়। যদি তা না হয়, একটি ত্রুটি শর্ত উত্থাপিত হয়। অনির্বাচিত কোন চেক সঞ্চালিত হয় না। যদি গন্তব্যের ধরণটি উৎসের মান ধরে রাখতে না পারে, তবে ফলাফলটি অনির্ধারিত। বিট প্যাটার্ন উৎসের কাঁচা বিট উপস্থাপনাটি শব্দগতভাবে অনুলিপি করা হয় এবং এটি গন্তব্যের ধরন অনুযায়ী পুনরায় ব্যাখ্যা করা হয়। এটি আলিয়াজিংয়ের মাধ্যমেও অর্জন করা যেতে পারে। অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষাগুলিতে, অবজেক্টগুলি ডাউনকাস্টও হতে পারেঃ একটি বেস ক্লাসের একটি রেফারেন্স তার উদ্ভূত ক্লাসগুলির মধ্যে একটিতে কাস্ট করা হয়। সি #এবং সি + + সি #-এ, টাইপ রূপান্তরটি নিরাপদ বা অনিরাপদ (অর্থাৎ সি-এর মতো) পদ্ধতিতে করা যেতে পারে, যা পূর্ববর্তীটিকে চেকড টাইপ কাস্ট বলা হয়। প্রাণী প্রাণী = নতুন বিড়াল (); বুলডগ বি = (বুলডগ) প্রাণী;// যদি (প্রাণী বুলডগ হয়), stat.type (প্রাণী) বুলডগ হয়, অন্যথায় একটি ব্যতিক্রম বি = বুলডগ হিসাবে প্রাণী;// যদি (প্রাণী বুলডগ হয়), বি = (বুলডগ) প্রাণী, অন্যথায় বি = নাল প্রাণী = নাল; বি = বুলডগ হিসাবে প্রাণী;// বি = = নাল সি + +-শৈলী কাস্ট সিনট্যাক্স ব্যবহার করে অনুরূপ প্রভাব অর্জন করা যেতে পারে। প্রাণী * প্রাণী = নতুন বিড়াল; বুলডগ * বি = স্ট্যাটিক কাস্ট <বুলডগ *> (প্রাণী);// কেবল তখনই সংকলন করে যখন প্রাণী বা বুলডগ অন্য (বা একই) থেকে উদ্ভূত হয় বি = ডায়নামিক কাস্ট <বুলডগ *> (প্রাণী);// যদি (প্রাণী বুলডগ হয়), বি = (বুলডগ *) প্রাণী, অন্যথায় বি = নালপ্টার বুলডগ & বিআর = স্ট্যাটিক কাস্ট <বুলডগ &> (* প্রাণী);// উপরের মতোই, তবে যদি একটি নালপ্টার ফেরত দিতে হয় তবে একটি ব্যতিক্রম নিক্ষেপ করা হবে// এটি কোডে দেখা যায় না যেখানে ব্যতিক্রম পরিচালনা এড়ানো হয় প্রাণী মুছে ফেলুন;// সর্বদা বিনামূল্যে সম্পদ প্রাণী = নালপ্টার; বি = ডায়নামিক কাস্ট <বুলডগ অ্যাসাইনমেন্ট রুল বলে যে একটি অ্যাসাইনমেন্ট, যেমনঃ x: = y বৈধ যদি এবং শুধুমাত্র যদি তার উৎস অভিব্যক্তি, y এই ক্ষেত্রে, তার লক্ষ্য সত্তার প্রকারের সাথে সামঞ্জস্যপূর্ণ হয়, এই ক্ষেত্রে x। এই নিয়মে, এর সাথে সামঞ্জস্যপূর্ণ মানে হল যে উৎস অভিব্যক্তির ধরণ হয় লক্ষ্যের সাথে সামঞ্জস্যপূর্ণ বা রূপান্তরিত হয়। অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং-এ পলিমরফিজমের পরিচিত নিয়ম দ্বারা প্রকারের সামঞ্জস্য সংজ্ঞায়িত করা হয়। উদাহরণস্বরূপ, উপরের অ্যাসাইনমেন্টে, y-এর ধরণ x-এর প্রকারের সাথে সামঞ্জস্যপূর্ণ যদি y যে শ্রেণীর উপর ভিত্তি করে তা x-এর বংশধর হয়। আইফেল-এ টাইপ রূপান্তরের সংজ্ঞা আইফেল-এ টাইপ রূপান্তরের ক্রিয়াগুলি, বিশেষত রূপান্তরিত হয় এবং থেকে রূপান্তরিত হয় যেমন সংজ্ঞায়িত করা হয়ঃ একটি ক্লাস সিইউ-এর উপর ভিত্তি করে একটি টাইপ একটি ক্লাস সিটি-র উপর ভিত্তি করে একটি টাইপ টি-তে রূপান্তরিত হয় (এবং টি ইউ থেকে রূপান্তরিত হয়) যদি সিটি-র একটি রূপান্তর পদ্ধতি থাকে যা ইউ-কে রূপান্তর প্রকার হিসাবে ব্যবহার করে, অথবা সিইউ-এর একটি রূপান্তর প্রশ্ন তালিকা থাকে যা টি-কে রূপান্তর প্রকার হিসাবে তালিকাভুক্ত করে। উদাহরণস্বরূপ আইফেল মাইক্রোসফ্ট. নেট ফ্রেমওয়ার্কের জন্য একটি সম্পূর্ণ সঙ্গতিপূর্ণ ভাষা। . নেট-এর বিকাশের আগে, আইফেলের ইতিমধ্যে বিস্তৃত শ্রেণী গ্রন্থাগার ছিল। . NET ধরনের লাইব্রেরি ব্যবহার করা, বিশেষ করে সাধারণত ব্যবহৃত ধরনের যেমন স্ট্রিং, একটি রূপান্তর সমস্যা তৈরি করে। বিদ্যমান আইফেল সফ্টওয়্যার আইফেল লাইব্রেরি থেকে স্ট্রিং ক্লাস (যেমন স্ট্রিং _ 8) ব্যবহার করে, তবে. NET-এর জন্য লেখা আইফেল সফ্টওয়্যারকে অবশ্যই অনেক ক্ষেত্রে. NET স্ট্রিং ক্লাস (System.String) ব্যবহার করতে হবে, উদাহরণস্বরূপ. NET পদ্ধতিতে কল করার সময় যা. NET ধরনের আইটেমগুলিকে আর্গুমেন্ট হিসাবে পাস করার আশা করে। সুতরাং, এই ধরনের রূপান্তর যতটা সম্ভব নির্বিঘ্ন হওয়া দরকার। মাই _ স্ট্রিংঃ স্ট্রিং _ 8-- নেটিভ আইফেল স্ট্রিং মাই _ সিস্টেম _ স্ট্রিংঃ সিস্টেম _ স্ট্রিং-- নেটিভ. নেট স্ট্রিং। মাই _ স্ট্রিংঃ = মাই _ সিস্টেম _ স্ট্রিং উপরের কোডে, দুটি স্ট্রিং ঘোষণা করা হয়েছে, প্রতিটি ভিন্ন প্রকারের একটি (সিস্টেম _ স্ট্রিং হল System.String এর জন্য আইফেল অনুবর্তী উপনাম)। যেহেতু System.String স্ট্রিং _ 8-এর সাথে সামঞ্জস্যপূর্ণ নয়, তাই উপরের অ্যাসাইনমেন্টটি কেবল তখনই বৈধ যদি System.String স্ট্রিং _ 8-এ রূপান্তরিত হয়। আইফেল শ্রেণীর স্ট্রিং _ 8-এ System.String ধরনের বস্তুর জন্য মেক _ ফ্রম _ সিল-এর একটি রূপান্তর পদ্ধতি রয়েছে। রূপান্তর পদ্ধতিগুলি সর্বদা সৃষ্টি পদ্ধতি হিসাবে মনোনীত করা হয় (নির্মাণকারীদের অনুরূপ)। নিচের অংশটি স্ট্রিং _ 8 ক্লাসের একটি অংশঃ স্ট্রিং _ 8 ক্লাস। মেক _ ফ্রম _ সিল তৈরি করুন। মেক _ ফ্রম _ সিল ({সিস্টেম _ স্ট্রিং}) রূপান্তর করুন। রূপান্তর পদ্ধতির উপস্থিতি অ্যাসাইনমেন্টটিকে করে তোলেঃ মাই _ স্ট্রিংঃ = মাই _ সিস্টেম _ স্ট্রিং শব্দার্থগতভাবে সমতুল্যঃ তৈরি করুন my_string.make_from_cil (মাই _ সিস্টেম _ স্ট্রিং) যেখানে মাই _ স্ট্রিংকে মাই _ সিস্টেম _ স্ট্রিংয়ের সমতুল্য বিষয়বস্তু সহ স্ট্রিং _ 8 টাইপের একটি নতুন বস্তু হিসাবে তৈরি করা হয়েছে। মূল উৎস এবং বিপরীত লক্ষ্য সহ একটি অ্যাসাইনমেন্ট পরিচালনা করতেঃ মাই _ সিস্টেম _ স্ট্রিংঃ = মাই _ স্ট্রিং ক্লাস স্ট্রিং _ 8-এ একটি রূপান্তর প্রশ্নও রয়েছে যা স্ট্রিং _ 8-এর একটি উদাহরণ থেকে একটি System.String তৈরি করবে। ক্লাস স্ট্রিং _ 8। মেক _ ফ্রম _ সিল তৈরি করুন। মেক _ ফ্রম _ সিল ({সিস্টেম _ স্ট্রিং}) কে _ সিলঃ {সিস্টেম _ স্ট্রিং}-এ রূপান্তর করুন। অ্যাসাইনমেন্টঃ মাই _ সিস্টেম _ স্ট্রিংঃ = মাই _ স্ট্রিং তারপর, সমতুল্য হয়ে ওঠেঃ মাই _ সিস্টেম _ স্ট্রিংঃ = my_string.to_cil আইফেলে, টাইপ রূপান্তরের জন্য সেটআপ ক্লাস কোডে অন্তর্ভুক্ত করা হয়, কিন্তু তারপর ক্লায়েন্ট কোডে স্পষ্ট টাইপ রূপান্তর হিসাবে স্বয়ংক্রিয়ভাবে ঘটতে দেখা যায়। এর মধ্যে কেবল অ্যাসাইনমেন্টই নয়, অন্যান্য ধরনের সংযুক্তিও রয়েছে, যেমন আর্গুমেন্ট (প্যারামিটার) প্রতিস্থাপন। জং জং আদিম প্রকারের মধ্যে কোনও অন্তর্নিহিত প্রকারের রূপান্তর (জবরদস্তিমূলক) প্রদান করে না। কিন্তু, স্পষ্ট ধরনের রূপান্তর (কাস্টিং) কীওয়ার্ড হিসাবে ব্যবহার করে করা যেতে পারে। ধরা যাক x = 1000; প্রিন্ট্লন! ("1000 একটি u16 হিসাবেঃ {}", x হিসাবে u16); ট্যাগবিহীন ইউনিয়ন ব্যবহার করে অন্তর্নিহিত কাস্টিং অনেক প্রোগ্রামিং ভাষা ইউনিয়ন প্রকারকে সমর্থন করে যা একাধিক ধরনের মান ধারণ করতে পারে। ট্যাগ না করা ইউনিয়নগুলি কিছু ভাষায় আলগা টাইপ-চেকিং সহ সরবরাহ করা হয়, যেমন সি এবং পিএল/আই, তবে মূল পাস্কেলেও। এগুলি এক ধরনের বিট প্যাটার্নকে অন্য ধরনের মান হিসাবে ব্যাখ্যা করতে ব্যবহার করা যেতে পারে। নিরাপত্তা সংক্রান্ত সমস্যা হ্যাকিং-এ, টাইপকাস্টিং হল একটি পরিবর্তনশীলের ডেটা টাইপকে মূলত যেভাবে সংজ্ঞায়িত করা হয়েছিল তা থেকে সাময়িকভাবে পরিবর্তন করার জন্য টাইপ রূপান্তরের অপব্যবহার। এটি হ্যাকারদের জন্য সুযোগ প্রদান করে যেহেতু টাইপ রূপান্তরের ক্ষেত্রে একটি পরিবর্তনশীলের পরে "টাইপকাস্ট" একটি ভিন্ন ডেটা টাইপে পরিণত হয়, সংকলক সেই হ্যাক করা পরিবর্তনশীলকে সেই নির্দিষ্ট ক্রিয়াকলাপের জন্য নতুন ডেটা টাইপ হিসাবে বিবেচনা করবে। আরও দেখুন ডাউনকাস্টিং টাইপ পন্নিং রেফারেন্স বাহ্যিক লিঙ্ক কাস্টিং ইন অ্যাডা কাস্টিং ইন সি + + সি + + রেফারেন্স গাইড কেন আমি সি + + কাস্ট অপারেটরদের ঘৃণা করি, ড্যানি কালেভ কাস্টিং ইন জাভা ইমপ্লিসিট কনভার্সনস ইন সি #ইমপ্লিসিট টাইপ কাস্টিং এ Cppreference.com স্ট্যাটিক এবং রিইনটারপ্রিটেশন কাস্টিং ইন সি + + আপকাস্টিং এবং ডাউনকাস্টিং ইন এফ #ডেটা টাইপ অপারেটর (প্রোগ্রামিং) টাইপ থিওরি ইউনারি অপারেশন