সংস্করণ প্রয়োজনে টিলডে-বৃহত্তর ((>) এর অর্থ?


94

~>রত্ন চশমা সংস্করণ প্রয়োজনীয়তার অর্থ কী ?

হান্না -১.১.১২ [এইচএমএল (2.> ২.২.৮)] এর উপর নির্ভর করে

27
একে কখনও কখনও স্পার্মি অপারেটর বলা হয়।
অ্যান্ড্রু গ্রিম


4
+1 @ সকারফোর্ডমহেম, "ট্যুইডল-ওয়াক্কা" মজাদার। নতুন লিঙ্ক: guides.rubygems.org/patterns/#pessimistic-version-constraint - যা নিজেই লিঙ্ক robots.thoughtbot.com/rubys-pessimistic-operator
রেড মটর

4
@ সুকারফোর্ডমহেম ট্যুইডল-ওয়াকাকে একরকম কিংবদন্তী জন্তুটি চুপচাবড়ার মতো শোনাচ্ছে। বিষয়টিতে এটি আমার অবদান। আপনি স্বাগত সমাজ।
twiz

4
thx আপডেট লিঙ্কগুলির জন্য @TheRedPea
SuckerforMayhem

উত্তর:


94

রুবিগেমস ম্যানুয়াল এটিকে একটি হতাশাবাদী সংস্করণের সীমাবদ্ধতা বলে

ধরুন আপনি একটি এন-পার্ট সংস্করণ নম্বর নির্দিষ্ট করেছেন, যেমন 1.3(2-অংশ) বা 3.5.6.2(4-অংশ) সীমাবদ্ধতা হিসাবে। তারপরে, সীমাবদ্ধতাটি পূরণ করতে, একটি সংস্করণ নম্বর অবশ্যই নিম্নলিখিত দুটি শর্ত পূরণ করতে হবে

  1. সংস্করণ সংখ্যার প্রথম এন -1 অংশগুলি সীমাবদ্ধতার প্রথম এন -1 অংশের সাথে সমান হতে হবে (উদাহরণস্বরূপ 1.xবা 3.5.6.xম্যাচ, তবে 0.xবা 3.5.7.xনা) এবং এবং

  2. সংস্করণ নম্বরের শেষ অংশ থেকে বড় হওয়া উচিত বা বাধ্যতা শেষ অংশ সমান (যেমন 1.9999এবং 3.5.6.2ম্যাচ, কিন্তু 1.2বা 3.5.6.1হবে না)।

অন্য কথায়

~> x 1 .x 2 .x 3 । … .এক্স এন -2। এক্স এন -1। এক্স এন

ম্যাচ

x 1 .x 2 .x 3 । ... .x এন-2 .x এন -1 .y, Y> = এক্স এন

একে "হতাশাবাদী" বাধা বলা হয় এবং এর জন্য ব্যবহারের ক্ষেত্রও বলা হয় যে আপনি যখন কেবল বলেছেন > x.y.z, আপনি আশাবাদী হচ্ছেন: আপনি ধরে নিয়েছেন যে এখান থেকে সমস্ত অনন্তকাল পর্যন্ত, API কখনও পরিবর্তন হবে না। এটি অবশ্যই একটি বেশ সাহসী অনুমান। তবে, অধিকাংশ প্রকল্পের যখন তারা করার অনুমতি দেওয়া হয় সম্পর্কে নিয়ম আছে পিছন সামঞ্জস্য বিরতি , এবং কিভাবে তারা তাদের সংস্করণ সংখ্যা পরিবর্তন করতে যখন তারা আছে কি বিরতি পিছন সামঞ্জস্য। আপনি হতাশাবাদী সীমাবদ্ধতা ব্যবহার করে সেই সংস্করণ সংখ্যার নিয়মগুলি এনকোড করতে পারেন এবং সুতরাং আপনি নিশ্চিত হতে পারেন যে আপনার কোডটি সর্বদা কাজ চালিয়ে যাবে (ধরে নিবেন যে অন্য প্রকল্পের লেখক আসলে তার নিজের নিয়মকে মেনে চলেছেন, যা দুর্ভাগ্যবশত সর্বদা ক্ষেত্রে হয় না) )।


32
অন্য কথায়: ~> এর অর্থ এটি কেবলমাত্র সেই নির্দিষ্ট সংস্করণটিকে এবং শেষ দশকে নতুন উপ-সংস্করণকে অনুমতি দেবে।
ম্যাগনে

18

অন্য কথায়, আপনি সমস্ত ছোটখাট আপডেটের সাথে আপনার মণি আপডেট রাখতে এই প্রতীকটি ব্যবহার করতে পারেন এবং আপনার অ্যাপ্লিকেশনটিকে ভেঙে দিতে পারে এমন কোনও বড় আপডেট করা এড়াতে পারেন।

উদাহরণস্বরূপ "~> 1.2" আপনার মণিটি 1.3 এ আপডেট করবে (যদি এমন সংস্করণ প্রকাশিত হয়) তবে এটি এটি 2.0 এ আপডেট করবে না


13

আমি মনে করি বান্ডলার দস্তাবেজগুলি এটিকে সর্বোত্তম করে তুলবে :

সুনির্দিষ্ট ~> এর একটি বিশেষ অর্থ রয়েছে, উদাহরণ দ্বারা সেরা দেখানো হয়েছে। ~> ২.০.৩> = ২.০.৩ এবং <২.১ এর সাথে অভিন্ন। ~> 2.1> = 2.1 এবং <3.0 এর সাথে সমান। ।> 2.2.beta 2.2.beta.12 এর মতো পূর্বনির্ধারিত সংস্করণগুলির সাথে মিলবে।


4
আমি ভীত আমি না। আমি খুশি যে গ্রহণযোগ্য উত্তর এটি আরও বিশদে ব্যাখ্যা করে। এই উদাহরণ-ভিত্তিক ব্যাখ্যাটি আমাকে অপারেটরটির অর্থ কী তা বুঝতে সাহায্য করে না।
ট্রিপলি

-1

এটি একই / বড় অংশের একই সংস্করণটির সাথে মেলে। এর অর্থ এই ক্ষেত্রে যে এইচএমএল <> 2.2.8 কোনও 2.2.x সংস্করণের সাথে মিলবে।

এটি নিশ্চিত করার জন্য ব্যবহার করা যেতে পারে যে কোনও এপিআই কোনও নতুন রত্নে পরিবর্তন আনছে, সেই পরিবর্তে সেই নতুন কিন্তু পরিবর্তিত রত্নের উপর নির্ভর করে যা এই ক্ষেত্রে হানাকে ভেঙে দেবে।


7
এটি ভুল নয়, তবে এটি অসম্পূর্ণ। এটা তোলে মধ্যে পার্থক্য undersatnd করা জরুরী ~> 2.0এবং ~> 2.0.0সাবেক ম্যাচ 2.0 2.1, 2.2.7, এবং অন্য পর্যন্ত সবকিছু (কিন্তু ছাড়া) 3.0 -। পরেরটি 2.0, 2.0.1, 2.0.999 এবং অন্যান্য সমস্ত কিছু মিলিয়ে (তবে অন্তর্ভুক্ত নয়) ২.১ এর সাথে মেলে।
জেমস এ রোজেন

4
@James উ: রোসেন: এছাড়াও, ~> 2.2.8হবে না উত্তর দাবী হিসাবে "কোন 2.2.x" সংস্করণ মেলে, কিন্তু এক্স ≥ 8. IOW একমাত্র 2.2.x সংস্করণ: উত্তর আরও বেশি অসম্পূর্ণ শ্রেষ্ঠ সময়ে হয়, ভুল এবং স্পষ্টভাবে সীমানা বিভ্রান্তিকর
Jörg ডব্লু মিটাগ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.