Διαδρομές
/
F#
F#
/
Ύλη
/
Πίνακες
Πί

Πίνακες σε F#

3 ασκήσεις

Σχετικά με την έννοια Πίνακες

Ένας array στη F# είναι μια συλλογή από μηδέν ή περισσότερες τιμές με σταθερό μήκος, της οποίας όμως οι τιμές μπορούν να αλλάξουν. Αυτό σημαίνει ότι μόλις δημιουργηθεί ένας πίνακας, το μέγεθός του δεν μπορεί να αλλάξει, αλλά οι τιμές του μπορούν. Όλες οι τιμές σε έναν πίνακα πρέπει να έχουν τον ίδιο τύπο. Οι πίνακες μπορούν να οριστούν ως εξής:

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 ακόμη ασκήσεις για να εξασκηθείς στην έννοια Πίνακες