Kotlin in Hindi – Ranges

  • Introduction to kotlin ranges in Hindi
  • Kotlin primitive type ranges in Hindi
  • Kotlin ClosedRange<T> interface in Hindi

Introduction to Kotlin Ranges

Kotlin आपको कुछ निश्चित values की range पर भी operations perform करने की ability provide करती है। यह feature उन situations में available है जब आपके पास कोई एक option available ना होकर options की range available हो।

एक range values का क्रम होता है। एक range की lower और higher values होती है जो उस range के start और end को दर्शाती है।

उदाहरण के लिए 1 2 3 4 5 6 7 8 9 10 एक range है। इसमें 1 lower value है जो की range के start को दर्शाती है और 10 higher value है जो range के end को दर्शाती है।

हालाँकि इस range में 10 अलग अलग values है। लेकिन kotlin आपको एक साथ इन 10 values की range में operations perform करने की ability provide करती है। कोई भी value जो range में नहीं है उस पर वह operation apply नहीं होगा।

Comparable Type Ranges

एक range को किसी भी comparable type के लिए define किया जा सकता है। Comparable type से यँहा मतलब है की ऐसी classes जो Comparable interface को implement करती है।

Comparable interface को implement करने वाली classes के instances के बीच एक total ordering defined होती है। इससे इन्हें ranges के रूप में use किया जा सकता है।

Comparable interface में ranges के लिए विभिन्न functions provide किये गए है।

  • rangeTo() – यह function start element से end element तक की range define करने के लिए use किया जाता है। 
  • downTo() – यह function reverse iteration के लिए प्रयोग किया जाता है। 
  • step() – यह function step को define करता है जो की range में दो elements की दुरी होती है। 

इन सभी functions की operator forms भी available है जो सिर्फ primitive type ranges के साथ ही use कि जाती है। 

Primitive Type Ranges

Class types के अलावा आप kotlin में available primitive types जैसे की integer, long और char आदि की भी ranges define कर सकते है। Primitive types की range define करना बहुत आसान है।

Comparable types के लिए use किये जाने वाले functions primitive types के साथ operators के रूप में use किये जाते है।

Integral type ranges को भी अलग से types के द्वारा represent किया गया है।

  • IntRange – Integer ranges के लिए। 
  • LongRange – Long numbers ranges के लिए। 
  • CharRange – Character ranges के लिए (a..z या A..Z)

Can Be Iterated Over

Primitive type ranges के बारे में जो सबसे महत्वपूर्ण बात है वह यह है की primitive type ranges को iterate किया जा सकता है। Primitive type ranges को for loop में use कर सकते है। ऐसा comparable types के साथ किया जाना सम्भव नहीं है।

Compiler Automatically Converts to Normal for Loop

जब आप ranges को for loop में use करते है तो compiler उसे identify करके automatically normal for loop में convert कर कर देता है।

Defined Using Double Dot Operator (..)

एक primitive type range को define करने के लिए kotlin में double dot operator का प्रयोग किया जाता है। इस operator को start और end value के बीच define किया जाता है। यह operator rangeTo function के equivalent है। 
उदाहरण के लिए आप एक 1 से 10 की range create करना चाहते है तो ऐसा आप इस प्रकार कर सकते है।

val x = 1..10

Used With in and !in

Ranges के साथ कार्य करने के लिए in और !in operators का प्रयोग किया जाता है। ये operators range में किसी element की membership को दर्शाते है।

इनमें in operator ये confirm किया जाता है की कोई element range में है। जब कोई element range में होता है तो true return किया जाता है नहीं तो false return किया जाता है।

और !in operator द्वारा यह confirm किया जाता है की कोई element range में नहीं है। जब कोई element range में नहीं होता है तो true return किया जाता है और जब element range में available होता है तो false return किया जाता है।

उदाहरण के लिए किसी दूसरी programming language में 1 से 10 तक loop चलाने के लिए आपको इस प्रकार code लिखना होगा।

for(i=1;i<=10;i++)
{
     print(i)
}

ऊपर दिए गए code में 1 से 10 तक की range में loop चलाया गया है और हर बार i को increase किया गया है। Condition के द्वारा हर iteration में यह check किया गया है की i available है या नहीं। Loop के अंदर i को print किया गया है।

ऊपर दिए गए code को ranges की मदद से आप kotlin में इस प्रकार define कर सकते है।

for(i in 1..10)
{
    print(i)
}

Step 

एक range में दो elements के बीच के difference को step द्वारा measure किया जाता है। Default step 1 ही होता है। उदाहरण के लिए ऊपर दिए गए उदाहरण में 1..10 तक की range में step 1 है। Range के हर element को one by one i से match किया गया है।

लेकिन आप अपनी आवश्यकतानुसार भी step को set कर सकते है। इसके लिए step() function का प्रयोग किया जाता है। इस function को range के बाद define किया जाता है। Function के नाम के बाद integer में step को define किया जाता है।

यदि आप 1 से 10 तक की range में सिर्फ even numbers को print करना चाहते है तो इसके लिए आपको step 2 set करना होगा।

for(i in 1..10 step 2)
{
   print(i)
}  

Reverse Iteration

किसी range को reverse में iterate करने के लिए downTo() function का प्रयोग किया जाता है। इस function को range के बाद define किया जाता है। इसके बाद वह element define किया जाता है जँहा तक आप iterate करना चाहते है। 

for(i in 1..10 downTo 1)
{
   print(i)
}

until()

आप एक ऐसी range भी define कर सकते है जिसमें end element को include ना किया जाये। इसके लिए until() function का प्रयोग किया जाता है।

for(i in 1 until 10)
{
   print(i)
}

ऊपर दिए गए उदाहरण में range 1 से 10 है लेकिन 10 को include नहीं किया गया है।

Previous: Kotlin Collections
Next: Kotlin Annotations