কেন লুয়ার কোনও "চালিয়ে" বিবৃতি নেই?


142

আমি গত কয়েকমাসে লুয়ার সাথে অনেকগুলি আচরণ করেছি এবং আমি বেশিরভাগ বৈশিষ্ট্যই পছন্দ করি তবে এর মধ্যে আমি এখনও কিছু মিস করছি:

  • কেন নেই continue?
  • এটির জন্য কি কি কার্যকারিতা রয়েছে?

12
যেহেতু এই প্রশ্নটি জিজ্ঞাসা করা হয়েছিল, লুয়া একটি gotoবিবৃতি পেয়েছিল যা ব্যবহার অবিরত করতে ব্যবহার করা যেতে পারে। নীচে উত্তর দেখুন।
lhf

উত্তর:


69

লুয়া 5.2 এ গোটো ব্যবহার করা সবচেয়ে ভাল কাজ ar

-- prints odd numbers in [|1,10|]
for i=1,10 do
  if i % 2 == 0 then goto continue end
  print(i)
  ::continue::
end

এটি লুয়াজিআইটি-র সংস্করণ ২.০.১ থেকে সমর্থনযোগ্য


46
আমি আশা করি তারা প্রকৃত continueএকদিন অন্তর্ভুক্ত থাকবে । gotoপ্রতিস্থাপন খুব সুন্দর চেহারা এবং আরো লাইন দরকার নেই। এছাড়াও, যদি আপনি দু'জনের সাথে একটি ফাংশনে একাধিক লুপ এটি করে থাকেন তবে কি সমস্যা সৃষ্টি করবে না ::continue::? প্রতি লুপে নাম তৈরি করা কোনও শালীন জিনিস বলে মনে হয় না।
ইটি

65

উপায় যে ভাষা আভিধানিক সুযোগ পরিচালনা করে উভয় সহ বিষয় সৃষ্টি gotoএবং continue। উদাহরণ স্বরূপ,

local a=0
repeat 
    if f() then
        a=1 --change outer a
    end
    local a=f() -- inner a
until a==0 -- test inner a

local aলুপের দেহের অভ্যন্তরের ঘোষণাপত্রটির নাম বহিরাগত ভেরিয়েবলকে মুখোশ দেয় aএবং সেই লোকালটির পরিধি untilবিবৃতিটির শর্ত জুড়ে প্রসারিত হয় সুতরাং শর্তটি অন্তঃস্থলটি পরীক্ষা করে a

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

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

-- not valid Lua 5.1 (or 5.2)
for k,v in pairs(t) do
  if isstring(k) then continue end
  -- do something to t[k] when k is not a string
end

লেখা যেতে পারে

-- valid Lua 5.1 (or 5.2)
for k,v in pairs(t) do
  if not isstring(k) then 
    -- do something to t[k] when k is not a string
  end
end

এটি যথেষ্ট স্পষ্ট, এবং সাধারণত বোঝা নয় যতক্ষণ না আপনার কাছে লুপ ক্রিয়াকলাপকে নিয়ন্ত্রণ করে এমন কয়েকটি বিস্তৃত কুলগুলি রয়েছে।


5
একটি অজগর ব্যাকগ্রাউন্ড থেকে আসা এটি একটি বিভ্রান্তিকর উত্তর কারণ সেখানকার প্রতিটি স্কোপ দৌড়ানোর আগেই এর স্থানীয় ভেরিয়েবলগুলি কী তা ইতিমধ্যে জানে। অর্থাৎ আমি পৌঁছানোর ক্ষেত্রে একটি আনবাউন্ড স্থানীয় ভেরিয়েবল ত্রুটিটি আশা করেছি until...
ubershmekel

2
gotoলুয়া 5.2 তে প্রবেশের আগে লুয়া সম্প্রদায়ের মধ্যে এটি নিয়ে প্রচুর আলোচনা হয়েছিল । স্বাভাবিকভাবেই, gotoএকই সমস্যা আছে। তারা শেষ পর্যন্ত সিদ্ধান্ত নিয়েছে যে রানটাইম এবং / অথবা কোড জেনারেশন এর ব্যয়টি যে পরিমাণেই রক্ষা gotoকরতে পারে সেগুলি নমনীয় হওয়ার সুবিধার জন্য উপযুক্ত যা উভয় continueএবং বহু-স্তরের অনুকরণ করতে ব্যবহার করা যেতে পারে break। বিশদ পাওয়ার জন্য আপনাকে লুয়া তালিকা সংরক্ষণাগারটি অনুসন্ধান করতে হবে। যেহেতু তারা পরিচয় করিয়ে দিয়েছে goto, স্পষ্টতই এটি দুর্গম নয়।
আরবার্টেইগ

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

4
এই ব্যাখ্যা কোন মানে করে না। localকেবল সংকলক-নির্দেশিকা - রানটাইম নির্দেশাবলী localএবং ভেরিয়েবল ব্যবহারের মধ্যে কী তা গুরুত্বপূর্ণ নয় - একই স্কোপিং আচরণ বজায় রাখতে আপনাকে সংকলকটিতে কোনও পরিবর্তন করার দরকার নেই। হ্যাঁ, এটি এতটা সুস্পষ্ট নাও হতে পারে এবং কিছু অতিরিক্ত ডকুমেন্টেশন প্রয়োজন, তবে, আবারও বলার জন্য এটির সংকলকটিতে জিরো পরিবর্তন প্রয়োজন। repeat do break end until trueআমার উত্তর উদাহরণ ইতিমধ্যে উত্পন্ন ঠিক একই বাইটকোড কম্পাইলার অবিরত সঙ্গে দাঁড়ায় এই যে, মাত্র তফাত হল যে সাথে আছেন continueএটি ব্যবহার করতে তুমি কুৎসিত অতিরিক্ত সিনট্যাক্স প্রয়োজন হত না।
ওলেগ ভি। ভলকভ

7
আপনি যা অভ্যন্তর পরিবর্তনশীল পরীক্ষা করতে পারেন ত্রুটিযুক্ত নকশা সম্পর্কে কথা বলে। শর্তটি অভ্যন্তরীণ সুযোগের বাইরে এবং এর মধ্যে ভেরিয়েবলগুলির অ্যাক্সেস থাকা উচিত নয়। সি এর সমতুল্য বিবেচনা করুন: do{int i=0;}while (i == 0);ব্যর্থ হয়, বা সি ++ do int i=0;while (i==0);তেও ব্যর্থ হয় ("এই সুযোগে ঘোষণা করা হয়নি")। দুর্ভাগ্যক্রমে লুয়ায় এখন এটি পরিবর্তন করতে খুব দেরি।
পেদ্রো গিমেনো

45

আপনি অতিরিক্তভাবে লুপের দেহটি মোড়ানো করতে পারেন repeat until trueএবং তারপরে do break endচালিয়ে যাওয়ার প্রভাবের জন্য ভিতরে ব্যবহার করতে পারেন । স্বাভাবিকভাবেই, আপনি যদি অতিরিক্ত লুপটিও breakঠিকঠাক করে ফেলতে চান তবে আপনাকে অতিরিক্ত পতাকা সেট আপ করতে হবে ।

এটি 5 বার লুপ করবে, প্রতিটি বার 1, 2 এবং 3 মুদ্রণ করবে।

for idx = 1, 5 do
    repeat
        print(1)
        print(2)
        print(3)
        do break end -- goes to next iteration of for
        print(4)
        print(5)
    until true
end

এই নির্মাণ এমনকি আক্ষরিক এক অপকোড অনুবাদ করে JMP লুয়া বাইটকোডে !

$ luac -l continue.lua 

main <continue.lua:0,0> (22 instructions, 88 bytes at 0x23c9530)
0+ params, 6 slots, 0 upvalues, 4 locals, 6 constants, 0 functions
    1   [1] LOADK       0 -1    ; 1
    2   [1] LOADK       1 -2    ; 3
    3   [1] LOADK       2 -1    ; 1
    4   [1] FORPREP     0 16    ; to 21
    5   [3] GETGLOBAL   4 -3    ; print
    6   [3] LOADK       5 -1    ; 1
    7   [3] CALL        4 2 1
    8   [4] GETGLOBAL   4 -3    ; print
    9   [4] LOADK       5 -4    ; 2
    10  [4] CALL        4 2 1
    11  [5] GETGLOBAL   4 -3    ; print
    12  [5] LOADK       5 -2    ; 3
    13  [5] CALL        4 2 1
    14  [6] JMP         6   ; to 21 -- Here it is! If you remove do break end from code, result will only differ by this single line.
    15  [7] GETGLOBAL   4 -3    ; print
    16  [7] LOADK       5 -5    ; 4
    17  [7] CALL        4 2 1
    18  [8] GETGLOBAL   4 -3    ; print
    19  [8] LOADK       5 -6    ; 5
    20  [8] CALL        4 2 1
    21  [1] FORLOOP     0 -17   ; to 5
    22  [10]    RETURN      0 1

4
এই উত্তরটি দুর্দান্ত, তবে এখনও কেবল একটির পরিবর্তে 3 টি লাইন প্রয়োজন। (যদি "চালিয়ে যাওয়া" যথাযথভাবে সমর্থিত হয়) তবে এটি একটি গোটো লেবেলের চেয়ে কিছুটা সুন্দর এবং নিরাপদ, কারণ এই নামের জন্য সংঘাতগুলি নেস্টেড লুপগুলির জন্য এড়ানো প্রয়োজন হতে পারে।
ইটি

3
যাইহোক, এটি গোটোর সাথে "আসল" সমস্যাটি এড়াতে পারে যে আপনাকে প্রতিটি স্যুইডো-কন্টিনিউয়ের জন্য একটি নতুন সনাক্তকারী / লেবেল আবিষ্কার করতে হবে না এবং সময়ের সাথে সাথে কোডটি সংশোধন করা হওয়ায় এটি কম ত্রুটিযুক্ত বলে প্রবণতা রয়েছে। আমি সম্মত হই যে ধারাবাহিকতা কার্যকর হবে , তবে এই আইএমওটি পরবর্তী সেরা জিনিস (এবং এটি পুনরাবৃত্তির জন্য / বনাম পর্যন্ত আরও দুটি লাইন প্রয়োজন একটি আরও আনুষ্ঠানিক "চালিয়ে যাওয়া" ".. এবং তারপরেও যদি আপনি লাইন নিয়ে উদ্বিগ্ন হন তবে আপনি সর্বদা "পুনরাবৃত্তি করুন" এবং "সত্য অবধি" লিখতে পারছেন তার উদাহরণ, উদাহরণস্বরূপ: gist.github.com/wilson0x4d/f8410719033d1e0ef771 )
শন উইলসন

1
লোকেরা আসলে পারফরম্যান্স বিবেচনা করে এমনকি luacএসওতে আউটপুট সরবরাহ করে দেখে ভাল লাগছে! একটি ভাল প্রাপ্য
upvote আছে

16

সোজা লুয়ার ডিজাইনার থেকে :

"চালিয়ে যান" এর সাথে আমাদের মূল উদ্বেগটি হ'ল এখানে আরও কয়েকটি নিয়ন্ত্রণ কাঠামো রয়েছে যা (আমাদের দৃষ্টিতে) "চালিয়ে যান" এর চেয়ে কম বেশি গুরুত্বপূর্ণ এবং এমনকি এটি প্রতিস্থাপনও করতে পারে। (উদাহরণস্বরূপ, [জাভা হিসাবে] লেবেলগুলির সাথে বিরতি বা আরও জেনেরিক গোটো)) অন্যান্য নিয়ন্ত্রণ-কাঠামো ব্যবস্থার চেয়ে "চালিয়ে যাওয়া" বেশি বিশেষ বলে মনে হয় না, এটি আরও বেশি ভাষায় উপস্থিত রয়েছে। (পার্লের আসলে দুটি "চালিয়ে" স্টেটমেন্ট রয়েছে, "পরবর্তী" এবং "আবার করুন" উভয়ই কার্যকর))


5
আমি ভর্তিটি পছন্দ করি: "আমরা এটি করতে যাচ্ছি না"
ডেভিড লজং ম্যাডিসন স্টেলার

2
এটা তোলে সুযোগ খেয়াল করা জরুরী যে তারা ছিল হয় যখন তারা ঠিকানায় খুঁজছেন করেনি তা নয়, 5.2 একটি "এতে যান" কনস্ট্রাক্ট (যা এই উত্তর লেখা হয়েছিল মুক্তি হয়নি) যোগ করে। 5.2.0 প্রকাশের পরে, 2012 থেকে এই উত্তরটি দেখুন ।
স্টুয়ার্ট পি। বেন্টলে

3
ডান - কারণ 'গেটো' একটি শালীন প্রোগ্রামিং নির্মাণ হিসাবে স্বীকৃত। (শেষ বিদ্রূপ) আহ ভাল।
ডেভিড লজং ম্যাডিসন স্টেলার

2
তবে এর চেয়ে বেশি যুক্তিসঙ্গত বলে মনে হয় নি "আমি স্রেফ continueলুয়ায় রাখা ভুলে গেছি ।"
নয়েডমন্ড

16

প্রথম ভাগে উত্তর প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী যেমন নিহত সরু বাইরে।

যেমন কাজের মতো, আপনি কোনও ফাংশনে লুপের বডিটি মোড়ানো করতে পারেন এবং returnএর থেকে প্রথম দিকে, উদাহরণস্বরূপ

-- Print the odd numbers from 1 to 99
for a = 1, 99 do
  (function()
    if a % 2 == 0 then
      return
    end
    print(a)
  end)()
end

অথবা যদি আপনি উভয় breakএবং continueকার্যকারিতা চান তবে স্থানীয় ফাংশনটি পরীক্ষা করুন, যেমন

local a = 1
while (function()
  if a > 99 then
    return false; -- break
  end
  if a % 2 == 0 then
    return true; -- continue
  end
  print(a)
  return true; -- continue
end)() do
  a = a + 1
end

15
দয়া করে না। আপনি প্রতিটি পুনরাবৃত্তিতে ক্লোজার পরিবেশ তৈরি করেন এবং এটি মেমরি এবং জিসি চক্রের বিশাল অপচয়।
ওলেগ ভি। ভলকভ

4
collectgarbage("count")আপনার সাধারণ 100 টি চেষ্টা করার পরেও যান এবং তারপরে আমরা কথা বলব। এই জাতীয় "অকাল" অপটিমাইজেশন গত সপ্তাহে প্রতি মিনিটে রিবুট করা থেকে একটি হাইলোডলোড প্রকল্পকে সংরক্ষণ করে।
ওলেগ ভি। ভলকভ

4
@ ওলেগভি.ভোলকভ যখন এই উদাহরণটি জিসির তুলনায় তুলনামূলকভাবে বেশি চাপ দেয়, এটি ফুটো করে না - সমস্ত অস্থায়ী বন্ধগুলি সংগ্রহ করা হবে। আমি আপনার প্রকল্প সম্পর্কে জানি না তবে আইএমই সবচেয়ে পুনরাবৃত্তি রিবুটগুলি ফাঁসের কারণে হয় due
ফাইন্প

9

আমি আগে কখনও লুয়া ব্যবহার করিনি, তবে আমি এটি গুগল করেছিলাম এবং এটি নিয়ে এসেছি:

http://www.luafaq.org/

পরীক্ষা করে দেখুন প্রশ্ন 1.26

এটি একটি সাধারণ অভিযোগ। লুয়া লেখকরা অনুভব করেছিলেন যে চালিয়ে যাওয়া সম্ভাব্য নতুন নিয়ন্ত্রণ প্রবাহ প্রক্রিয়াগুলির মধ্যে একটি মাত্র ছিল (এটি সত্য যে এটি পুনরাবৃত্তির স্কোপ নিয়মগুলি নিয়ে কাজ করতে পারে না / যতক্ষণ না গৌণ বিষয় ছিল))

লুয়া 5.2-তে একটি গোটো স্টেটমেন্ট রয়েছে যা সহজে একই কাজটি করতে ব্যবহৃত হতে পারে।


7

আমরা এটি নীচের হিসাবে অর্জন করতে পারি, এটি এমনকি সংখ্যাকে এড়িয়ে যাবে

local len = 5
for i = 1, len do
    repeat 
        if i%2 == 0 then break end
        print(" i = "..i)
        break
    until true
end

O / পি:

i = 1
i = 3
i = 5

5

আমরা অনেক সময় এই দৃশ্যের মুখোমুখি হয়েছি এবং চালিয়ে যাওয়ার অনুকরণে আমরা কেবল একটি পতাকা ব্যবহার করি। আমরা পাশাপাশি গোটো স্টেটমেন্টের ব্যবহার এড়াতে চেষ্টা করি।

উদাহরণ: কোডটি i = 3 ব্যতীত i = 1 থেকে i = 10 থেকে স্টেটমেন্টগুলি মুদ্রণ করতে চায়। এছাড়াও এটি আপনার কোডে থাকা অন্যান্য নেস্টেড স্টেটমেন্টগুলির অনুকরণের জন্য "লুপ স্টার্ট", ​​লুপ এন্ড "," শুরু হলে ", এবং" যদি শেষ হয় "মুদ্রণ করে।

size = 10
for i=1, size do
    print("loop start")
    if whatever then
        print("if start")
        if (i == 3) then
            print("i is 3")
            --continue
        end
        print(j)
        print("if end")
    end
    print("loop end")
end

পরীক্ষার পতাকা সহ লুপের শেষ সুযোগ পর্যন্ত সমস্ত অবশিষ্ট বিবৃতিগুলি সংযুক্ত করে অর্জিত হয়।

size = 10
for i=1, size do
    print("loop start")
    local continue = false;  -- initialize flag at the start of the loop
    if whatever then
        print("if start")
        if (i == 3) then
            print("i is 3")
            continue = true
        end

        if continue==false then          -- test flag
            print(j)
            print("if end")
        end
    end

    if (continue==false) then            -- test flag
        print("loop end")
    end
end

আমি বলছি না যে এটি সেরা পদ্ধতির তবে এটি আমাদের পক্ষে নিখুঁতভাবে কাজ করে।


4

লুয়া হ'ল লাইটওয়েট স্ক্রিপ্টিং ল্যাঙ্গুয়েজ যা সম্ভব আরও ছোট করতে চায়। উদাহরণস্বরূপ, অনেক আনরি অপারেশন যেমন প্রাক / পোস্ট ইনক্রিমেন্ট পাওয়া যায় না

চালিয়ে যাওয়ার পরিবর্তে, আপনি গোটো লাইক ব্যবহার করতে পারেন

arr = {1,2,3,45,6,7,8}
for key,val in ipairs(arr) do
  if val > 6 then
     goto skip_to_next
  end
     # perform some calculation
  ::skip_to_next::
end

3

আবার বিবর্তনের সাথে, আপনি কেবল নীচের কোডটি ব্যবহার করতে পারেন:

for k,v in pairs(t) do
  if not isstring(k) then 
    -- do something to t[k] when k is not a string
end

বিপরীতে সমস্যাটি হ'ল প্রায়শই একটি সিরিজে একাধিক শর্তযুক্ত থাকে না (যেমন ব্যবহারকারীর ইনপুটকে বৈধতা দেওয়ার জন্য)। এবং যেহেতু পথে কোনও স্থানে শর্ট সার্কিটের প্রয়োজন হতে পারে, বিপর্যয়ের অর্থ কন্ডিশনগুলি অবিচ্ছিন্নভাবে বাসা বাঁধে (পরিবর্তে "এটি কি খারাপ? তবে পালানো; অন্যথায় কী এই খারাপ? তবে পালানো"), যা খুব সোজা, আপনি "এই ঠিক আছে? তাহলে কি এই ঠিক আছে? তাহলে কি এই ঠিক আছে?" এর মতো কোড দিয়ে শেষ করেছেন
লেসলি ক্রাউস

-3

কেন চলছে না?

কারণ এটি অপ্রয়োজনীয় ¹ খুব কম পরিস্থিতি রয়েছে যেখানে কোনও দেবের প্রয়োজন হয়।

ক) যখন আপনার খুব সাধারণ লুপ থাকে তখন একটি 1- বা 2-লাইনার বলুন, তবে আপনি কেবল লুপের অবস্থাটি ঘুরিয়ে নিতে পারেন এবং এটি এখনও প্রচুর পরিমাণে পঠনযোগ্য।

খ) আপনি যখন সাধারণ পদ্ধতিগত কোডটি লিখছেন (যেমন, আমরা গত শতাব্দীতে কোডটি কীভাবে লিখেছি), আপনারও কাঠামোগত প্রোগ্রামিং প্রয়োগ করা উচিত (যেমন, আমরা কীভাবে গত শতাব্দীতে আরও ভাল কোড লিখেছি)

গ) আপনি যদি অবজেক্ট-ওরিয়েন্টেড কোড লিখছেন, তবে আপনার লুপের বডিটিতে এক বা দুটি লাইনারে প্রকাশিত না হওয়া অবধি এক বা দুটি মেথড কল থাকতে হবে না (যার ক্ষেত্রে এ দেখুন)

)) আপনি যদি কার্যকরী কোডটি লিখছেন তবে পরবর্তী পুনরাবৃত্তির জন্য কেবল একটি সাধারণ টেল-কলটি ফিরিয়ে দিন।

একমাত্র ক্ষেত্রে যখন আপনি একটি ব্যবহার করতে চান continue কীওয়ার্ডটি যদি আপনি লুয়া কোডটি অজগরটির মতো কোড করতে চান তবে এটি কেবল এটি নয় ²

এটির জন্য কি কি কার্যকারিতা রয়েছে?

যদি না এ) প্রয়োগ না করা হয়, সেই ক্ষেত্রে কোনও কাজের ভিত্তির প্রয়োজন নেই, আপনার স্ট্রাকচার্ড, অবজেক্ট-ওরিয়েন্টড বা ফাংশনাল প্রোগ্রামিং করা উচিত। সেগুলি লুয়া যে দৃষ্টান্তগুলির জন্য নির্মিত হয়েছিল সেগুলি হল, তাই যদি আপনি তাদের বিন্যাসগুলি এড়াতে আপনার পথ থেকে দূরে সরে যান তবে আপনি ভাষার বিরুদ্ধে লড়াই করতে চাই ³


কিছু স্পষ্টতা:

Ua লুয়া একটি খুব সংক্ষিপ্ত ভাষা। এটি যতটা দূরে যেতে পারে তত কম বৈশিষ্ট্য রাখার চেষ্টা করে এবং কোনও continueবিবৃতি সেই দিক থেকে প্রয়োজনীয় বৈশিষ্ট্য নয়।

আমি মনে করি সংক্ষিপ্ততার এই দর্শনটি 2019 সালের এই সাক্ষাত্কারে রবার্তো ইয়ারুসালিমস্কি দ্বারা ভালভাবে ধরা পড়েছে :

এটি এবং এটি এবং এটি যুক্ত করুন, এটি রেখে দিন এবং শেষ পর্যন্ত আমরা বুঝতে পারি চূড়ান্ত উপসংহারটি বেশিরভাগ লোককে সন্তুষ্ট করবে না এবং আমরা প্রত্যেকে যে পছন্দগুলি পছন্দ করব সেগুলি রাখব না, তাই আমরা কিছুই রাখি না। শেষ পর্যন্ত, কঠোর মোড একটি যুক্তিসঙ্গত আপস।

Ua লুয়ায় অন্যান্য ভাষা থেকে আগত প্রচুর প্রোগ্রামারদের প্রচুর পরিমাণ রয়েছে বলে মনে হয় কারণ তারা যে প্রোগ্রামের জন্য স্ক্রিপ্ট চেষ্টা করতে চেষ্টা করছে তা এটি ব্যবহার করার জন্য ঘটে এবং তাদের অনেকেই তাদের ভাষা ছাড়া অন্য কিছু লিখতে চায় না বলে মনে হয় পছন্দ, যা "লুয়ার এক্স বৈশিষ্ট্যটি কেন নেই?" এর মতো অনেক প্রশ্নের দিকে পরিচালিত করে?

ম্যাটজ সাম্প্রতিক এক সাক্ষাত্কারে রুবির সাথে একই রকম পরিস্থিতি বর্ণনা করেছেন :

সর্বাধিক জনপ্রিয় প্রশ্নটি হ'ল: "আমি ভাষা এক্স সম্প্রদায় থেকে এসেছি; আপনি কি এক্স ভাষা থেকে রুবি পর্যন্ত কোনও বৈশিষ্ট্য প্রবর্তন করতে পারবেন না?", বা এর মতো কিছু। এবং এই অনুরোধগুলির বিষয়ে আমার উত্তরটি হ'ল ... "না, আমি এটি করতাম না", কারণ আমাদের আলাদা ভাষার নকশা এবং ভিন্ন ভাষা বিকাশের নীতি রয়েছে।

Around এটিকে ঘিরে আপনার উপায় হ্যাক করার কয়েকটি উপায় রয়েছে; কিছু ব্যবহারকারী ব্যবহারের পরামর্শ দিয়েছেন goto, যা বেশিরভাগ ক্ষেত্রে যথেষ্ট পরিমাণে অ্যাপ্রক্সিমেশন, তবে খুব কুরুচিপূর্ণ হয়ে যায় এবং নেস্টেড লুপগুলি দিয়ে সম্পূর্ণ ভেঙে যায়। gotoএস ব্যবহার করার ফলে আপনি যখনই অন্য কাউকে নিজের কোডটি দেখান এসআইসিপি-র একটি অনুলিপি আপনাকে ছুঁড়ে ফেলার আশঙ্কায় ফেলে দেয়।


1
আমি হ্রাস পেয়েছি কারণ প্রথম বাক্যটি অবশ্যই স্পষ্টতই মিথ্যা, এবং বাকী উত্তরটি অসন্তুষ্ট।
বোফোনটাইন

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

এটি একটি যুক্তি নয়: আপনি যে তর্ক করতে পারবেন না যে লোকেরা যখন তাদের কোনও পছন্দ না রাখে "এটি ব্যতীত ভাল"।
বোফোনটেন

আমি মনে করি আমাদের তখন "প্রয়োজনীয়" এর আলাদা আলাদা সংজ্ঞা রয়েছে।
ডার্কওয়াইপ্লেয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.