জাভা 7 এ স্ট্রিংগুলিতে স্যুইচিংয়ের সুবিধা কী?


19

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

আমি এমন পরিস্থিতি নিয়ে ভাবতে লড়াই করছি যেখানে SE7 এর সাথে আমি এখন এনামসের চেয়ে স্ট্রিংগুলির সাথে একটি ইনপুট হিসাবে সুইচ ব্যবহার করার সিদ্ধান্ত নেব। যদি সেগুলি পুরো স্ট্রিংগুলিতে স্যুইচিংয়ের মাধ্যমে প্রয়োগ করা হয় (উদাহরণস্বরূপ আংশিক বা রেজেক্স ম্যাচের পরিবর্তে), কোডটি পরিবর্তনের কম কারণ বলে মনে হচ্ছে না।

এবং আইডিই সরঞ্জামগুলি এবং কোডিংয়ের পাঠ্য-লেখার অনুপাতের সাহায্যে আমি স্ট্রিংয়ের মানগুলিকে অতিক্রম করার চেয়ে একটি অতিরিক্ত এনুমকে স্বয়ংক্রিয়ভাবে উত্পন্ন করে তুলতে চাই।

তারা প্রোগ্রামার হিসাবে আমাদের কাছে কী উপকার এনেছে? কম বয়লার-প্লেট?

ভাষাটি এই বৈশিষ্ট্যের জন্য কাঁদছে বলে মনে হচ্ছে না। যদিও সম্ভবত ব্যবহারের ক্ষেত্রে আমি অবহেলা করছি।


স্ট্রিংগুলি ইতিমধ্যে স্যুইচ স্টেটমেন্টগুলিতে ইতিমধ্যে প্রচুর ব্যবহৃত হয়েছে, তবে লোকেরা সরাসরি তাদের ব্যবহার করতে না পারার কারণে তারা গাছ বা এনামগুলিতে রূপান্তরিত হলে তারা দৈত্যের মতো কাজ করতে শুরু করে। উভয় workarounds কোড কম পাঠযোগ্য। উভয় উপায়ে হ'ল কর্মক্ষেত্র এবং কেন কোনও স্থানীয় প্রয়োগ করা সমাধান প্রোগ্রামারদের উদ্দেশ্যগুলি আরও ভাল করে দেখায় যদি কোনও কর্মপরিকল্পনা ব্যবহার করে।
পিটার বি

@ পিটারবি অবশ্যই যুক্তিযুক্তভাবে, একটি এনাম কাজ করার পরিবর্তে শব্দার্থক মান যুক্ত করছে, যা টাইপ-সুরক্ষা নিয়ে আসে (উদাহরণস্বরূপ একটি টাইপোগুলি বাগের পরিবর্তে সংকলনের সময় ধরা পড়বে)। এছাড়া স্ট্রিং এর সমস্ত উদাহরণ refactor করতে পারবেন, যেমন যে প্রেক্ষাপটে ব্যবহৃত , যে স্ট্রিং এর অন্যান্য ব্যবহারগুলির প্রভাবিত না করেই (যা ডোমেইন বস্তুর সঙ্গে বেশ প্রায়ই ঘটতে পারে।)
anotherdave

উত্তর:


12

আমি যতদূর বলতে পারি, প্রশ্নটি হল স্ট্রিং কনস্ট্যান্টগুলি এনামে মোড়ানো কেন ভাষা ব্যবহারকারীর প্রয়োজনের জন্য যথেষ্ট বিবেচনা করা হয়নি? জেডিকে ((প্রকল্পের কয়েন) মেলিং তালিকায় ঘোষিত সরকারী বৈশিষ্ট্য প্রস্তাবটিতে এটি সম্বোধন করা হয়েছে ।

আমার প্রস্তাবটি পড়ার পরে, এনামগুলি ব্যবহারের বিকল্পটি মূলত খারিজ করা হয়েছে যে এটি প্রকারের ব্লাট প্রবর্তন করে। আপনার সুবিধার জন্য, প্রস্তাবের প্রাসঙ্গিক অংশটি নীচে উদ্ধৃত করা হয়েছে, বিবৃতি সম্বলিত এনামগুলিকে সাহসের সাথে উদ্ধৃত করা হয়েছে :

প্রধান অ্যাডভান্টেজ: কী প্রস্তাব প্রস্তাবকে অনুকূল পরিবর্তন করে?

ধ্রুব স্ট্রিং মানগুলির সেটের ভিত্তিতে নির্বাচিত ক্রিয়াকলাপগুলির জন্য আরও নিয়মিত কোডিং নিদর্শনগুলি ব্যবহার করা যেতে পারে; নতুন নির্মাণের অর্থ জাভা বিকাশকারীদের কাছে স্পষ্ট হওয়া উচিত।

প্রধান সুবিধা: প্রস্তাব গৃহীত হলে প্ল্যাটফর্মটি কেন ভাল?

স্ট্রিং-ভিত্তিক প্রেরণ কোডের জন্য সম্ভাব্য আরও ভাল পারফরম্যান্স।

প্রধান অসুবিধা: সর্বদা ব্যয় হয়।

সংকলকটির জন্য কিছু বাস্তবায়ন এবং পরীক্ষার জটিলতা বৃদ্ধি করেছে।

বিকল্পগুলি: কোনও ভাষা পরিবর্তন না করে কী কী সুবিধা এবং সুবিধাগুলি পাওয়া যেতে পারে?

না; স্ট্রিং ইক্যুয়ালিটির জন্য যদি চেইন করা হয় তবে অন্য পরীক্ষাগুলি সম্ভাব্য ব্যয়বহুল এবং তার স্যুইচযোগ্য ধ্রুবকগুলির জন্য একটি এনাম প্রবর্তন করা, সুদের প্রতিটি স্ট্রিং ভ্যালুতে, ভাল কারণ ছাড়াই কোনও প্রোগ্রামে অন্য ধরণের যোগ করা ...


সাহসী অংশটি বেশ অবাক করা
সাইমন বার্গোট

1
@ সিমন আমার কাছে ব্যক্তিগতভাবে এটি অপ্রত্যক্ষ আচরণ হিসাবে লেখা আছে, "আমরা যদি জা-এর আগে প্রাক-জাভা 5 এর সাথে বিবেচনা করার উপায় অবলম্বন করতে থাকি তবে আমরা সি # এর প্রতিযোগিতা ছেড়ে দেব"। :) "প্রাক জাভা 5 উপায়গুলির" উদাহরণের জন্য, জেডিকে-1223179 দেখুন: স্ট্রিংগুলি স্যুইচ করুন - 1995 সালে জমা দেওয়া এবং দ্রুত উইন্ডস ফিক্স হিসাবে বন্ধ হয়ে গেল : "আপনার দম ধরবেন না this এটির মতো কিছুই আমাদের পরিকল্পনায় নেই । "
gnat

ধন্যবাদ, প্রস্তাবটিতে যে কারণগুলি পেশ করা হয়েছে তা দেখতে খুব আকর্ষণীয়। এটি এখনও ভুল বলে মনে হচ্ছে যে আমরা "কোনও কারণ ছাড়াই" একটি প্রোগ্রামের সাথে একটি প্রকার প্রবর্তন করছি - আমরা ওও প্রোগ্রামাররা! :)
আরেকটি দিন

5
@ অন্যদিকে "অবজেক্ট-ওরিয়েন্টেড" কেবল তখন প্রকারগুলি প্রবর্তনকে ন্যায্যতা দেয় যখন এগুলি অর্থবোধক উদ্দেশ্যে কাজ করে। স্পষ্টতই, জেসিপিতে প্রচলিত মতামতটি প্রমাণিত হয়েছে যে স্ট্রিং কনস্ট্যান্টগুলির জন্য সুইচগুলিতে মস্তিষ্কহীন মোড়ক হিসাবে এনামগুলি ব্যবহার করা অর্থবহ হিসাবে যোগ্য নয়
gnat

1
বাহ, আমি সরকারী প্রস্তাবকে সক্রিয়ভাবে টাইপ ব্লাটকে মোকাবিলা করতে দেখে সরল (ভাল উপায়ে) অবাক হয়েছি। এটাই সতেজ। টাইপ ব্লাউট জাভাতে একটি বিশাল সমস্যা।
বেন লি

7

কোডটিকে আরও পঠনযোগ্য করে তোলা ছাড়াও if/else ifতুলনার তুলনায় সম্ভাব্য পারফরম্যান্সের লাভ রয়েছে । পরিবর্তনটি সার্থক কিনা আপনি কতটা তুলনা করছেন তার উপর নির্ভর করে। একটি স্ট্রিং সুইচ দুটি পৃথক সুইচ নির্দেশাবলী হিসাবে নির্গত হবে। প্রথমটি হ্যাশ কোডগুলিতে কাজ করে, সুতরাং এটি একটি হতে থাকে lookupswitch, শেষ পর্যন্ত ফলন O(log n)জটিলতা। দ্বিতীয়টি সর্বদা নিখুঁত O(1) tableswitch, তাই সম্মিলিত জটিলতা এখনও রয়েছে O(log n)if/else ifবিবৃতিগুলির একটি একক, রৈখিক চেইন কিছুটা খারাপ দেয়O(n) জটিলতা দেয়।

যদি আপনি তিনটি স্ট্রিং এর চেয়ে বেশি তুলনা করেন তবে switchসম্ভবত একটি সম্ভবত আরও পঠনযোগ্য এবং কমপ্যাক্ট। এটি সম্ভবত আরও ভাল সঞ্চালন করবে, যদিও আপনি হট কোডের পথে প্রচুর সংখ্যক তুলনা না করে আপনি কোনও পার্থক্য লক্ষ্য করতে পারেন না।


1
আমি আরও জিজ্ঞাসা করছিলাম কেন আমি এনামের পরিবর্তে স্ট্রিংয়ের উপর একটি সুইচ ব্যবহার করব। আমি একটি বৃহত if/elseব্লকের খারাপ অভ্যাসটি বিবেচনা করব , তবে এই মুহুর্তে, এটি ব্যবহার করার মতো আমার খুব বেশি কারণ থাকবে না।
অন্য দিন

তবে কমান্ড প্যাটার্নের সাথে একটি মানচিত্র একই জটিলতার সাথে আরও পঠনযোগ্যতা অর্জন করবে কারণ আপনার কাছে অতিরিক্ত ধরণের কমান্ড রয়েছে
স্পেসট্রাকার

3

স্ট্রিংগুলির জন্য স্যুইচ ব্যবহার করা যেতে পারে যখন আপনার enumমানগুলি বাইরে থেকে আসে, অর্থাত্ একটি ডাটাবেসে সঞ্চিত।

switchজেডিকে in-তে আরেকটি উল্লেখযোগ্য বিষয় হ'ল এটি if-elseনির্মাণের চেয়ে অনেক বেশি সুগন্ধযুক্ত ।

switchযখন আপনাকে নোড এবং অ্যাট্রিবিউটের ধরণগুলিতে প্রচুর সুইচ তৈরি করতে হয় তখন দ্রুত স্ট্রিং এসগুলির জন্য একটি দুর্দান্ত ব্যবহারের কেস জেএসএন / এক্সএমএল স্ট্রিম পার্সিং হতে পারে। আমি এর জন্য আরও ভাল বিকল্পের কথা ভাবতে পারি না।


1
"যখন আপনার এনাম মানগুলি বাইরে থেকে আসে, অর্থাত্ একটি ডাটাবেসে সঞ্চিত থাকে তখন স্ট্রিংগুলির জন্য স্যুইচ করা অপরিবর্তনীয়" ": আপনি কি এই বিষয়ে বিস্তারিত বলতে পারবেন? স্যুইচ বিবৃতিতে থাকা স্ট্রিংগুলি হার্ড-কোডড রয়েছে: ডাটাবেসের স্ট্রিংগুলি পরিবর্তন হওয়ার সাথে সাথেই আপনার কোডটি পুরানো।
জর্জিও

ঠিক আছে, আপনি সঠিক - enumজাভা স্থির প্রকৃতির কারণে এই ক্ষেত্রে ব্যবহার করা যেতে পারে। যখন আমি এটি লিখছিলাম, আমি Roleএকটি সুরক্ষা গ্রন্থাগার থেকে একটি সম্পর্কে ভাবছিলাম যা সাধারণত শ্রেণি হিসাবে সরবরাহ করা হয় এবং এতে প্রবেশ করা যায় না enum। আর একটি ক্ষেত্রে গতিশীলভাবে সংকলিত জাভা / গ্রোভি কোড - এই পরিস্থিতিতে, যা বিরল, স্ট্রিং সুইচগুলি আরও ভাল বিকল্প হতে পারে।
আন্দ্রে চ্যাশেভ

2

সরলতা

স্ট্রিং ইন স্যুইচ সমর্থন এনাম বা if-elseযুক্তিকে রূপান্তর না করে ডেটা প্রক্রিয়াকরণের জন্য দরকারী useful কখনও কখনও স্ট্রিংটি স্যুইচ করা সহজ।

জেডিকে ( (প্রকল্পের মুদ্রা) মেলিং তালিকায় বৈশিষ্ট্য প্রস্তাবনা থেকে ( @ উত্তর উত্তর )

তার পরিবর্তনযোগ্য স্থির জন্য একটি এনাম পরিচয় করিয়ে দেওয়া, সুদের প্রতিটি স্ট্রিং ভ্যালুতে, কোনও কারণ ছাড়াই কোনও প্রোগ্রামে অন্য ধরণের যোগ করা ...

যদি-অন্য সংস্করণ

এটি সংক্ষিপ্ত, তবে অনেকগুলি if'sপড়া শক্ত। এবং এটি ধীর।

if (color.equals("red")) {
    System.out.println("Color is Red");
} else if (color.equals("green")) {
    System.out.println("Color is Green");
} else {
    System.out.println("Color not found");
}

এনাম সংস্করণ

এনামগুলিকে সংজ্ঞায়িত করা দরকার, এটি ভাল তবে কিছু সময় প্রয়োজন হয় না।

enum Color {RED, GREEN}

যথারীতি প্রক্রিয়া চলছে

try {
    switch (Color.valueOf(color)) {
        case RED:
            System.out.println("Color is Red");
            break;
        case GREEN:
            System.out.println("Color is Green");
            break;
    }
} catch (IllegalArgumentException e) {
    System.out.println("Color not found");
}

জেডিকে 7 - স্যুইচ স্টেটমেন্টগুলির সংস্করণে স্ট্রিংস

অতিরিক্ত ধরণের রূপান্তর ও সংজ্ঞা না দিয়ে আমরা প্রক্রিয়া করতে পারি।

switch (color) {
    case "red":
        System.out.println("Color is Red");
        break;
    case "green":
        System.out.println("Color is Green");
        break;
    default:
        System.out.println("Color not found");
}

7
এটি এই প্রশ্নের সমাধান করে না, যদিও: আপনি এখানে এনামগুলির পরিবর্তে স্ট্রিং ব্যবহার করবেন কেন?
ডেভ নিউটন

0

যে কোনও ভাষার সর্বাধিক উন্নতি হ'ল কোডটি পড়া সহজ করে দেওয়া। আমি কোনও দিন অভিনবতার চেয়ে পঠনযোগ্য কোডের পক্ষে favor

আপনি এটি বিশ্বাস নাও করতে পারেন তবে চেষ্টা করুন:

public enum JettStaff {
  ADRIAN("Adrian German") {
    public String toString() {
      return name + " (dgerman@indiana.edu)";
    }
  },
  ARJIT("Arjit Sengupta") {
    public String toString() {
      return name + " (asengupt@indiana.edu)";
    }
  },

  // and on for the rest...

  private String name;

  public JettStaff(String n) { this.name = n; }
}

JettStaff x = JettStaff.SUZANNE;
System.out.println(x);

আমি উপরে আপনার মন্তব্য বনাম আপনার কোড উদাহরণ সম্পর্কে অস্পষ্ট। আপনি কি এমন কি এমন কিছু পড়ার পক্ষে উদাহরণস্বরূপ এনামকে বোঝাচ্ছেন?
অন্যদিন

@anotherdave দেখুন stackoverflow.com/a/338230/2860598

2
এটি খুব স্বীকৃত; আপনি ভান করছেন যে এনামের কোনও ইমেল ক্ষেত্র নেই, বা এটি কোনও শ্রেণি হবে না।
ডেভ নিউটন

4
@ ব্যবহারকারী 2860598 আপনি যদি কোনও বক্তব্য দেওয়ার চেষ্টা করছেন তবে প্রাসঙ্গিক একটি উদাহরণ ব্যবহার করুন। এটি কোনও স্ট্রিং ধ্রুবককে ফ্যাট-ফিঙ্গারিংয়েও সম্বোধন করে না।
ডেভ নিউটন

1
@ ইউজার ২6059০৯8৮ আপনি যে উত্তরটি যুক্ত করেছেন তা বলছে যে সেখানে উপস্থিত হয়ে গেছে এবং আগে তারা এনুমের সাথে "আনুমানিক" হতে পারে। আমার বক্তব্যটি হ'ল এনুম ব্যবহারটি এখনও তাদের প্রবর্তন সহ পছন্দনীয় বলে মনে হয়।
অন্যদিন

0

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

  if (something.equals("foo")) {
    // foo processing
  } else 
  if (something.equals("bar")) {
   // bar processing
  }

আপনি এখনও এই ক্ষেত্রে নাম লেখার চেষ্টা করে এবং / অথবা কাস্টম স্ট্রিং-> এনুম রুটিন সরবরাহের মাধ্যমে এনামগুলি ব্যবহার করতে পারেন তবে কখনও কখনও এটি সম্ভব হয় না বা ব্যবহারিকও হয় না (যেমন আপনাকে যখন অনেকগুলি এনাম তৈরি করতে হয়)

টিএলডিআর : আপনি যখন জাভা কোডের সাথে খাঁটিভাবে কাজ করছেন তখন আপনার অবশ্যই Enums ব্যবহার করা উচিত তবে বাহ্যিক অবজেক্টের সাথে এটি সবসময় সম্ভব নয় possible আমি আশা করি আমার ব্যাখ্যাটি বোধগম্য হয়।


বাহিরে ডেটা সাথে এসেছেন ডিলিং, এবং আপনি ইতিমধ্যে জানেন যে আপনি আপনার প্রয়োজন যথেষ্ট জানি আপনি যদি ifবিবৃতি, তাহলে আপনি এটি মোড়কে উচিত আপ যাহাই হউক না কেন , যার মানে আপনি এখনো enums, অথবা একটি কমান্ড প্যাটার্ন ইত্যাদি ব্যবহার করতে পারে
ডেভ নিউটন

@ ডেভিনিউটন হ্যাঁ, আপনি এখনও এনাম ব্যবহার করতে পারেন তবে আমি আমার উত্তরে যেমন বলেছি, কখনও কখনও এটি ব্যবহারিক ক্ষেত্রে এমন হয় না যেখানে পার্সিংয়ের সময় আপনি কেবল আপনার কোডে একবার ব্যবহার করতে এনামের একটি ঝুলন্ত তৈরি করতে পারেন।

@ ডিমোনি কিন্তু আপনি যদি 100 টি এনাম মান তৈরি করতে চান তবে এর অর্থ কি 100% কেস স্টেটমেন্ট থাকতে হবে এমন একটি স্যুইচ বিকল্পের সাথে নয়? যদি অনেকগুলি ভেরিয়েবল থাকে তবে আমি অবশ্যই এনামগুলির টাইপ-নিরাপত্তা পছন্দ করব।
অন্য দিন

0

আপনি যখন Stringsস্যুইচ স্টেটমেন্টগুলিতে ব্যবহার করেন এবং মনে করেন যে এটি একটি খারাপ প্রোগ্রামিং অনুশীলন রয়েছে তখন আমি এটিকে পরিষ্কার এবং পঠনযোগ্য কোডের সাথে মতামতের সাথে একমত নই । আপনি সঞ্চয় করার জন্য যে মানটি ব্যবহার করেন তা যদি আপনি পরিবর্তন করেন তবে আপনাকে এটি প্রতিটি সুইচ বা অন্যথায় যদি ঘটতে পারে তবে তা পরিবর্তন করতে হবে। আপনি আপনার কোডের প্রতিটি বীরকে হার্ডকোডযুক্ত মান রাখছেন তা এটি ভাল নয়। একদিন আপনি যদি এই হার্ড কোডিং মানগুলির একটি পরিবর্তন করার সিদ্ধান্ত নেন তবে আপনি কী করতে যাচ্ছেন? এটির প্রতিটি প্রতিলিপি অনুসন্ধান এবং প্রতিস্থাপন করবেন?

আপনার যদি কিছু হার্ডকোডযুক্ত মান থাকে যা আপনি যদি-অন্য বিবৃতিগুলি করেন তবে জাভা 1.5 এর আগে তাদের জন্য ধ্রুবক আদিম মানগুলি ব্যবহার করা আরও ভাল কারণ এটি ধরণের সুরক্ষা নিয়ে আসে।

ঠিক আছে, এমন পরিস্থিতিতে থাকবে যেগুলি আপনি স্ট্রিং মানগুলি (এইচটিটিপি অনুরোধ, ফাইল ইত্যাদি থেকে) পাবে এবং এগুলি আদিম মানেরগুলিতে রূপান্তরিত করা খুব ব্যথার। তবে Enumএই মুহুর্তে একটি ভাল কাজ করুন। কারণ আপনি যখন এনুমে সংরক্ষণ করেন সেই মানটি পরিবর্তন করতে চান, যখন আপনি ঘোষণা করেন কেবল এটি পরিবর্তন করুন। আপনার কোডে অন্য কোনও পরিবর্তন করার দরকার নেই। (আপনার অবশ্যই অন্য কোথাও সঞ্চিত মান পরিবর্তন করা দরকার)।

যদি আপনি কেবল একটি নোংরা এবং অলস কোডটি প্রয়োগ করছেন তবে তা সঠিক। আপনি প্রচুর Enumএস কোডে জড়িত থাকতে চান না , তবে একটি বড় আকারের জটিল সফ্টওয়্যার যা আপনাকে মেরে ফেলবে।


-1

আপনি যদি জানেন কী কোন তথ্য আসছে এবং এটি কেবল 5 টি রাজ্যের হতে পারে তবে একটি ব্যবহার করুন Enum। তবে যদি সম্ভাব্য রাজ্যগুলি 9000 এরও বেশি হতে পারে এবং আপনার কেবল 42 টি সন্ধান করতে হবে, তবে আপনি একটি স্যুইচ ব্যবহার করা ভাল কারণ আপনি সেই সমস্ত রাজ্যগুলি টাইপ করতে চান না।

সম্ভাব্য রাজ্যগুলি অজানা বা অনেকগুলি রয়েছে এবং আপনি কেবল কয়েকটি সম্পর্কে যত্নবান না হলে বেশিরভাগ পরিস্থিতিতে একটি এনাম বেশিরভাগ ক্ষেত্রেই পছন্দ হিসাবে বিবেচিত হন।

তবে তারা এখন এটি চালু করল কেন? এটি কেবলমাত্র একটি পরিবর্তন যা ক্লিনার কোডের জন্য মঞ্জুরিপ্রাপ্ত।

1.5 তে তারা আপনাকে এনামগুলির জন্য কাস্টম বডিও তৈরি করার অনুমতি দেয়।


তবে আপনি কি কেবল একটি এনুম রাজ্যে অন্যান্য 8958 সম্ভাব্য মানগুলি বরাদ্দ করবেন না?
অন্য দিন

@anotherdave এই কোথায় defaultমধ্যে switchখেলা করার জন্য আসে। আমি জানি না যে আপনার সাথে একটি ডিফল্ট রাষ্ট্র থাকতে পারে Enum, যদি না আপনি একটি ডিফল্ট রাজ্য তৈরি করেন তবে তবে এই কোডটি সবেমাত্র ফুলে যায় যখন একটি switchব্যবহারের জন্য অনেক বেশি ক্লিনার।

3
এটি বললে UNKNOWNঅবাক লাগবে যে এনুমের উপর একটি রাষ্ট্র ফুটে উঠেছে, তবে defaultএকটি স্যুইচ-তে একটি মামলা নেই।
আরেকটি ডেভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.