কম্পিউটার

রুবি 2.6-এ 9টি নতুন বৈশিষ্ট্য

রুবির একটি নতুন সংস্করণ নতুন বৈশিষ্ট্য এবং কর্মক্ষমতা উন্নতি নিয়ে আসছে৷

আপনি কি পরিবর্তনগুলি বজায় রাখতে চান?

চলুন দেখে নেওয়া যাক!

অন্তহীন রেঞ্জ

রুবি 2.5 এবং পুরানো সংস্করণগুলি ইতিমধ্যেই একটি অফুরন্ত পরিসীমা সমর্থন করে (Float::INFINITY সহ ), কিন্তু রুবি 2.6 এটিকে পরবর্তী স্তরে নিয়ে যায়৷

নতুন অন্তহীন পরিসর এই মত দেখায়:

(1..)

এটি একটি নিয়মিত পরিসর থেকে আলাদা কারণ এটিতে (1..10) এর মতো শেষের মান নেই .

উদাহরণ ব্যবহার :

["a", "b", "c"].zip(1..)# [["a", 1], ["b", 2], ["c", 3]][ 1,2,3,4,5][1..]# [2, 3, 4, 5](1..)।পদক্ষেপ(5) নিন (100)# [1, 6, 11, 16, 21, 26, 31, 36, 41, 46] 

আপনি অন্য কোন উদাহরণের সাথে আসতে পারেন?

গণনাযোগ্য::ArithmethicSequence

Ruby 2.6.

-এ একটি নতুন ধরনের গণনাযোগ্য বস্তু চালু করা হয়েছে

আমি Enumerable::ArithmethicSequence সম্পর্কে কথা বলছি .

এই মুহূর্তে দুটি পদ্ধতি আছে যা আপনাকে দেয় একটি ArithmethicSequence :

  • পরিসীমা#পদক্ষেপ
  • সংখ্যাসূচক#ধাপ

এই সম্পর্কে বিশেষ কি?

একটি ArithmethicSequence কয়টি উপাদান আছে, প্রথম উপাদান এবং শেষ উপাদানটি কী তা জানে৷

উদাহরণ :

<প্রে>(1..10)।পদক্ষেপ(2)।প্রথম# 1(1..10)।পদক্ষেপ(2)।শেষ# 9

এইগুলি first &last রুবি 2.6 এর আগে পদ্ধতিগুলি উপলব্ধ নয় এবং সেই কারণেই ArithmethicSequence এখন বিদ্যমান!

আরেকটি পার্থক্য :

(1..10)।পদক্ষেপ(2) ==(1..10)।পদক্ষেপ(2)# মিথ্যা - রুবি 2.5 (এবং পুরানো)(1..10)।পদক্ষেপ(2) ==( 1..10) ধাপ(2)# সত্য - রুবি 2.6

পাটিগণিতের ক্রমগুলি একে অপরের সাথে 2.6 এ তুলনা করা যেতে পারে।

একাধিক আর্গুমেন্ট সহ হ্যাশ মার্জ করুন

আপনি যদি একাধিক হ্যাশ মার্জ করতে চান যাতে আপনি সেগুলিকে একত্রিত করতে পারেন…

আপনি এটি করতে পারেন৷ :

a ={ a:1 }b ={ b:2 }c ={ c:3 }a.merge(b).merge(c)# {:a=>1, :b=>2, :c=>3}

রুবি 2.6 একটি নতুন উপায় যোগ করে :

a.merge(b, c)# {:a=>1, :b=>2, :c=>3}

একই ফলাফল, কিন্তু আপনি শুধুমাত্র একবার পদ্ধতি কল করতে হবে!

নতুন ব্যতিক্রম বিকল্প

যখন আপনি Integer এর মত একটি রূপান্তর পদ্ধতি ব্যবহার করেন যদি মানটি রূপান্তর করা না যায় তবে আপনি একটি ব্যতিক্রম পাবেন৷

উদাহরণ :

পূর্ণসংখ্যা("a")# আর্গুমেন্ট ত্রুটি (পূর্ণসংখ্যার জন্য অবৈধ মান():"a")

রুবি 2.6 একটি নতুন exception যোগ করে মূলশব্দ যুক্তি:

  • পূর্ণসংখ্যা()
  • ফ্লোট()
  • যৌক্তিক()
  • জটিল()

আপনি এই কীওয়ার্ড দিয়ে এই পদ্ধতির আচরণ নিয়ন্ত্রণ করতে পারেন।

উদাহরণ :

পূর্ণসংখ্যা("a", ব্যতিক্রম:মিথ্যা)# শূন্য

Random.bytes

আপনার কিছু র্যান্ডম বাইট প্রয়োজন হলে রুবি 2.6 একটি নতুন bytes যোগ করে Random করার পদ্ধতি ক্লাস।

এখানে একটি উদাহরণ আছে :

Random.bytes(10)# "\xCD\r\xE6Wz\xBA)\x02\xC4\xDB"

এটি সম্পূর্ণ নতুন কার্যকারিতা নয় কারণ এটি সবসময় securerandom এর মাধ্যমে পাওয়া যায় মডিউল।

'securerandom'SecureRandom.bytes(10) প্রয়োজন

তাহলে এই নতুন পদ্ধতি নিয়ে বিরক্ত কেন?

Random.bytes গতির জন্য নিরাপত্তার ব্যবসা করে, এটি SecureRandom এর চেয়ে 8x দ্রুত .

পরিসীমা#%

একটি নতুন % পদ্ধতিটি Range-এ যোগ করা হয়েছে রুবি 2.6 এ।

উদাহরণ :

(0..) % 2) নিন (5)# [0, 2, 4, 6, 8] 

এই পদ্ধতিটি Range#step এর সমতুল্য .

ট্রেসপয়েন্ট#প্যারামিটার

TracePoint ক্লাস আপনাকে মেথড কল, ক্লাস ডেফিনিশন এবং থ্রেডের মতো ইভেন্ট ট্রেস করতে সাহায্য করে।

রুবি 2.6 একটি নতুন parameters যোগ করে পদ্ধতি।

এই নতুন পদ্ধতির সাহায্যে আপনি কল করা পদ্ধতির প্যারামিটার তালিকা প্রিন্ট করতে পারেন।

উদাহরণ :

TracePoint.trace(:call, :b_call, :c_call) do |tp| p [tp.event, tp.parameters]enddef orange(a,b,c*)endorange(1,2,3)

এতে ফলাফল :

[:কল, [[:req, :a], [:req, :b], [:rest, :c]]]

ক্ষণস্থায়ী হিপ

ক্ষণস্থায়ী হিপ হল স্বল্পস্থায়ী বস্তুর জন্য কর্মক্ষমতার উন্নতি যার লক্ষ্য মেমরি ফ্র্যাগমেন্টেশনের সমস্যা এবং ম্যালোকে ধীরগতির কল করা।

Malloc যেভাবে রুবি ইন্টারপ্রেটার (এবং বেশিরভাগ সি প্রোগ্রাম) মেমরিকে অনুরোধ করে অপারেটিং সিস্টেম থেকে।

নিউজ এন্ট্রি অনুসারে, আমরা 6-7% গতির দিকে তাকিয়ে আছি৷

আমি কিছু বেঞ্চমার্ক চালিয়েছি:

অনেকগুলি হ্যাশ 10টি উপাদানের চেয়ে ছোট তৈরি করার সময় এটি সবচেয়ে কার্যকর বলে মনে হচ্ছে .

রুবি 2.6-এ 9টি নতুন বৈশিষ্ট্য

এই ফলাফলগুলির উপর ভিত্তি করে রুবি 2.6 (প্রিভিউ 3) এ বড় হ্যাশগুলি ধীর।

অন্যান্য বস্তু যা অস্থায়ী হিপ থেকে উপকৃত হতে পারে :

  • অ্যারে
  • গঠন
  • নিয়মিত বস্তু (আপনার তৈরি করা ক্লাস থেকে)

অ্যারে#ইউনিয়ন এবং অ্যারে#পার্থক্য

দুটি নতুন পদ্ধতি, union &difference Array-এ যোগ করা হয় রুবি 2.6 এ ক্লাস।

উদাহরণ :

[1,2,3,4,5].পার্থক্য([3])# [1, 2, 4, 5][1,2,3,4,5].ইউনিয়ন([5,6, 7])# [1, 2, 3, 4, 5, 6, 7] 

এই নতুন পদ্ধতিতে একাধিক আর্গুমেন্ট লাগে।

সারাংশ

রুবি 2.6 আপনাকে কম সময়ে আরও ভাল কোড লিখতে সাহায্য করার জন্য নতুন দরকারী বৈশিষ্ট্য নিয়ে আসছে। আরেকটি নতুন কর্মক্ষমতা-সম্পর্কিত বৈশিষ্ট্য, MJIT (পদ্ধতি ভিত্তিক জাস্ট-ইন-টাইম কম্পাইলার) একটি উত্সর্গীকৃত নিবন্ধে কভার করা হবে৷

রুবি 2.6 25 ডিসেম্বর, 2018 এ মুক্তি পাবে বলে আশা করা হচ্ছে .

আপনি যদি পরিবর্তনগুলির সাথে তাল মিলিয়ে চলতে চান, আপনার রুবি দক্ষতা উন্নত করুন এবং একজন দুর্দান্ত রুবি বিকাশকারী হয়ে উঠুন আজই আমার রুবি নিউজলেটারে যোগ দিতে ভুলবেন না৷

পড়ার জন্য ধন্যবাদ!


  1. ক্রোম 90 এ আসছে 7টি উত্তেজনাপূর্ণ নতুন বৈশিষ্ট্য

  2. Windows 10-এ নোটপ্যাডে নতুন বৈশিষ্ট্য

  3. নতুন SQL সার্ভার 2017 বৈশিষ্ট্য

  4. উইন্ডোজ 8.1 আপডেট 1 নতুন বৈশিষ্ট্য যোগ করুন