ऐर

ऐरे में F#

3 अभ्यास

ऐरे के बारे में

F# में array शून्य या उससे अधिक वैल्यू का एक ऐसा संग्रह है जिसे बदला जा सकता है और जिसकी लंबाई तय रहती है। इसका मतलब है कि ऐरे एक बार बन जाने के बाद उसका आकार नहीं बदल सकता, लेकिन उसकी वैल्यू बदल सकती हैं। किसी ऐरे में सभी वैल्यू का टाइप एक ही होना चाहिए। ऐरे को इस तरह बनाया जा सकता है:

let empty = [| |]
let emptyAlternative = Array.empty

let singleValue = [| 5 |]
let singleValueAlternative = Array.singleton 5

let threeValues = [| "a"; "b"; "c" |]

एलिमेंट को ऐरे में असाइन किया जा सकता है या इंडेक्स का उपयोग करके उसे ऐरे से निकाला जा सकता है। F# में ऐरे की गिनती शून्य से शुरू होती है, यानी पहले एलिमेंट का इंडेक्स हमेशा शून्य होता है:

let numbers = [| 2; 3; 5 |]

// Update value in array
numbers[2] <- 9

// Read value from array
numbers[2]
// => 9

ऐरे पर काम करने वाले फंक्शन और ऑपरेटर Array मॉड्यूल में परिभाषित हैं। इनमें से कुछ फंक्शन array इंस्टेंस की प्रॉपर्टी के रूप में भी उपलब्ध हैं:

Array.length [| 7; 8 |] // => 2
[| 7; 8 |].Length       // => 2

यहाँ कोई विकल्प सही या गलत नहीं है। आम तौर पर Array मॉड्यूल के फंक्शन टाइप अनुमान के साथ बेहतर काम करते हैं, जबकि प्रॉपर्टी की मदद से कोड और संक्षिप्त लिखा जा सकता है।

ऐरे पैटर्न की मदद से ऐरे पर पैटर्न मैचिंग की जा सकती है:

let describe array =
    match array with
    | [| |] -> "Empty"
    | [| 1; 2; three |] -> sprintf "1, 2, %d" three
    | _ -> "Other"

describe [| |]         // => "Empty"
describe [| 1; 2; 4 |] // => "1, 2, 4"
describe [| 5; 7; 9 |] // => "Other"

पैटर्न मैचिंग करते समय आप किसी वैल्यू को अनदेखा भी कर सकते हैं। जब किसी खास केस में आपको किसी वैल्यू की परवाह न हो (यानी आप उस वैल्यू का उपयोग नहीं करने वाले हों), तो इसे जताने के लिए आप अंडरस्कोर ('_') लिख सकते हैं:

let describe array =
    match array with
    | [| |] -> "Empty array"
    | [| x |] -> "Array with one item"
    | [| _; y |] -> "Array with two items (first item ignored)"
    | _ -> "Array with many items (all items ignored)"

describe [| |]          // => "Empty array"
describe [| 1 |]        // => "Array with one item"
describe [| 5; 7 |]     // => "Array with two items (first item ignored)"
describe [| 5; 7; 9 |]  // => "Array with many items (all items ignored)"

पैटर्न मैचिंग में अकेला '_' हमेशा सबसे अंत में आना चाहिए। जो वैल्यू किसी भी दूसरे केस से मैच नहीं होती, उसे यही केस संभाल लेता है।

GitHub के ज़रिए संपादित करें यह लिंक नई विंडो या टैब में खुलता है।

ऐरे सीखिए

अभ्यास लॉक है

ऐरे पर अभ्यास करने के लिए 2 और अभ्यास अनलॉक कीजिए