আমি নিশ্চিত নই যে জাভা ল্যাঙ্গুয়েজ স্পেসিফিকেশনে এমন কোনও আইটেম রয়েছে যা ভেরিয়েবলের আগের মানটি লোড করার নির্দেশ দেয় ...
এখানে. স্পেসিফিকেশনটি কী বলে পরবর্তী সময় আপনি অস্পষ্ট, দয়া করে স্পেসিফিকেশনটি পড়ুন এবং তারপর এটি অস্পষ্ট কিনা তা প্রশ্ন করুন it
... ডান দিকটি (x = y)
যা বন্ধনী দ্বারা অর্পিত আদেশ অনুসারে প্রথমে গণনা করা উচিত।
উক্তিটি মিথ্যা। অভিভাবকরা মূল্যায়নের আদেশকে বোঝায় না । জাভাতে, প্রথম বন্ধনী নির্বিশেষে মূল্যায়নের ক্রমটি বাম থেকে ডানে চলে যায়। অভিভাবকরা নির্ধারণের ক্রম নয়, স্যুপ এক্সপ্রেসনের সীমানা কোথায় তা নির্ধারণ করে।
প্রথম অভিব্যক্তিটি মিথ্যা হিসাবে মূল্যায়ন করে তবে দ্বিতীয়টি সত্যের কাছে মূল্যায়ন করে?
==
অপারেটরের নিয়মটি হ'ল: একটি মান উত্পাদন করতে বাম দিকটি মূল্যায়ন করুন, একটি মান উত্পাদন করতে ডান দিকটি মূল্যায়ন করুন, মানগুলি তুলনা করুন, তুলনাটি অভিব্যক্তির মান।
অন্য কথায়, এর অর্থ expr1 == expr2
সর্বদা একই রকম যেমন আপনি লিখেছেন temp1 = expr1; temp2 = expr2;
এবং পরে মূল্যায়ন করেছিলেন temp1 == temp2
।
=
বাম পাশের একটি স্থানীয় ভেরিয়েবল সহ অপারেটরের নিয়মটি হ'ল: একটি ভেরিয়েবল উত্পাদন করতে বাম দিকটি মূল্যায়ন করুন, মান উৎপন্ন করার জন্য ডান দিকটি মূল্যায়ন করুন, কার্য সম্পাদন করুন, ফলাফলটি নির্ধারিত মানটি।
সুতরাং এটি একসাথে রাখুন:
x == (x = y)
আমাদের তুলনা অপারেটর রয়েছে। একটি মান উত্পাদন করতে বাম দিকে মূল্যায়ন - আমরা এর বর্তমান মান পাই x
। ডান দিকটি মূল্যায়ন করুন: এটি একটি কার্যনির্বাহী তাই আমরা একটি পরিবর্তনশীল - ভেরিয়েবল উত্পাদন করতে বাম দিকটি x
মূল্যায়ন করি - আমরা ডান দিকটি - বর্তমান মানটি y
- এটি নির্ধারণ করি x
এবং ফলাফল নির্ধারিত মান হিসাবে নির্ধারিত হয়। তারপরে আমরা x
নির্ধারিত মানের সাথে মূল মানটির তুলনা করি ।
আপনি (x = y) == x
অনুশীলন হিসাবে করতে পারেন । আবার, মনে রাখবেন, বাম দিকে মূল্যায়নের সব নিয়ম ডান দিকে মূল্যায়নের সব নিয়ম সামনে ঘটতে ।
আমি প্রত্যাশা করতাম (x = y) প্রথমে মূল্যায়ন করা হবে এবং তারপরে এটি x এর সাথে নিজের (3) তুলনা করে সত্যে ফিরে আসবে।
আপনার প্রত্যাশা জাভা বিধি সম্পর্কে ভুল বিশ্বাস একটি সেট উপর ভিত্তি করে। আশা করি আপনি এখন সঠিক বিশ্বাস এবং ভবিষ্যতে সত্য জিনিস আশা করবে।
এই প্রশ্নটি "জাভা এক্সপ্রেশনে সুব এক্সপ্রেসনগুলির মূল্যায়নের ক্রম" থেকে পৃথক
এই বক্তব্য মিথ্যা। এই প্রশ্নটি সম্পূর্ণ জার্মানী।
x অবশ্যই এখানে 'subexpression' নয়।
এই বিবৃতিও মিথ্যা। এটি প্রতিটি উদাহরণে দু'বার একটি subexpression হয় ।
এটি 'মূল্যায়ন' না করে তুলনার জন্য লোড করা দরকার।
এ ব্যাপারে আমার কোন ধারনা নেই।
স্পষ্টতই আপনার এখনও অনেক ভ্রান্ত বিশ্বাস রয়েছে। আমার পরামর্শ হ'ল আপনার মিথ্যা বিশ্বাসগুলি সত্য বিশ্বাস দ্বারা প্রতিস্থাপন না করা পর্যন্ত আপনি স্পেসিফিকেশনটি পড়ুন।
প্রশ্নটি জাভা-নির্দিষ্ট এবং এক্সভিশন এক্স == (x = y), সাধারণত ছদ্মবেশী সাক্ষাত্কারের প্রশ্নের জন্য সাধারণত তৈরি করা অবাস্তব গঠনমূলক কাঠামোর মত নয়, আসল প্রকল্প থেকে এসেছে।
অভিব্যক্তির প্রমাণটি প্রশ্নের সাথে প্রাসঙ্গিক নয়। এই জাতীয় অভিব্যক্তির নিয়মগুলি স্পেসিফিকেশনে স্পষ্টভাবে বর্ণিত হয়; এটি পড়ুন!
তুলনা-ও-প্রতিস্থাপন আইডিয়ামটির জন্য এটি এক-লাইন প্রতিস্থাপনের কথা ছিল
যেহেতু সেই এক-লাইন প্রতিস্থাপনটি আপনাকে কোডের পাঠক, এর মধ্যে বিরাট বিভ্রান্তি সৃষ্টি করেছিল, আমি প্রস্তাব দিচ্ছি যে এটি একটি খারাপ পছন্দ। কোডটি আরও সংক্ষিপ্ত করা তবে বোঝা শক্ত হওয়া কোনও জয় নয়। কোডটি দ্রুত করা সম্ভব নয়।
ঘটনাক্রমে, সি # এর সাথে তুলনা এবং একটি লাইব্রেরি পদ্ধতি হিসাবে প্রতিস্থাপন করা হয়েছে, যা মেশিনের নির্দেশে জিট করা যেতে পারে। আমি বিশ্বাস করি জাভাতে এমন কোনও পদ্ধতি নেই, কারণ এটি জাভা টাইপ সিস্টেমে প্রতিনিধিত্ব করা যায় না।