Μοντέλο αξιολόγησης
Το μοντέλο αξιολόγησης της γλώσσας τύπων Power Query M διαμορφώνεται σύμφωνα με το μοντέλο αξιολόγησης που βρίσκεται συνήθως σε υπολογιστικά φύλλα, όπου η σειρά των υπολογισμών μπορεί να προσδιοριστεί με βάση τις εξαρτήσεις μεταξύ των τύπων στα κελιά.
Εάν έχετε γράψει τύπους σε ένα υπολογιστικό φύλλο όπως το Excel, ενδέχεται να αναγνωρίσετε ότι οι τύποι στα αριστερά θα έχουν ως αποτέλεσμα τις τιμές στα δεξιά κατά τον υπολογισμό τους:
Στην M, μια παράσταση μπορεί να αναφέρει προηγούμενες παραστάσεις ονομαστικά και η διαδικασία αξιολόγησης θα προσδιορίζει αυτόματα τη σειρά με την οποία υπολογίζονται οι παραστάσεις στις οποίες γίνεται αναφορά.
Ας χρησιμοποιήσουμε μια εγγραφή για να δημιουργήσουμε μια παράσταση που ισοδυναμεί με το παραπάνω παράδειγμα υπολογιστικού φύλλου. Κατά την προετοιμασία της τιμής ενός πεδίου, αναφέρεστε σε άλλα πεδία εντός της εγγραφής με το όνομα του πεδίου, ως εξής:
[
A1 = A2 * 2,
A2 = A3 + 1,
A3 = 1
]
Η παραπάνω παράσταση έχει ως αποτέλεσμα την ακόλουθη εγγραφή:
[
A1 = 4,
A2 = 2,
A3 = 1
]
Οι εγγραφές μπορούν να περιέχονται, ή να είναι ένθετες, μέσα σε άλλες εγγραφές. Μπορείτε να χρησιμοποιήσετε τον τελεστή αναζήτησης ([ ]) για να αποκτήσετε πρόσβαση στα πεδία μιας εγγραφής βάσει ονόματος. Για παράδειγμα, η ακόλουθη εγγραφή έχει ένα πεδίο με την ονομασία Πωλήσεις που περιέχει μια εγγραφή και ένα πεδίο με την ονομασία Σύνολο που αποκτά πρόσβαση στα πεδία FirstHalf και SecondHalf της εγγραφής πωλήσεων:
[
Sales = [ FirstHalf = 1000, SecondHalf = 1100 ],
Total = Sales[FirstHalf] + Sales[SecondHalf]
]
Η παραπάνω παράσταση έχει ως αποτέλεσμα την ακόλουθη εγγραφή:
[
Sales = [ FirstHalf = 1000, SecondHalf = 1100 ],
Total = 2100
]
Χρησιμοποιείτε τον τελεστή δείκτη θέσης ({ }) για να αποκτήσετε πρόσβαση σε ένα στοιχείο σε μια λίστα βάσει του αριθμητικού δείκτη του. Οι τιμές μέσα σε μια λίστα αναφέρονται στη χρήση δείκτη με βάση το μηδέν από την αρχή της λίστας. Για παράδειγμα, οι δείκτες 0 και 1 χρησιμοποιούνται για αναφορά στο πρώτο και το δεύτερο στοιχείο στην παρακάτω λίστα:
[
Sales =
{
[
Year = 2007,
FirstHalf = 1000,
SecondHalf = 1100,
Total = FirstHalf + SecondHalf // equals 2100
],
[
Year = 2008,
FirstHalf = 1200,
SecondHalf = 1300,
Total = FirstHalf + SecondHalf // equals 2500
]
},
#"Total Sales" = Sales{0}[Total] + Sales{1}[Total] // equals 4600
]
Αργή και γρήγορη αξιολόγηση
Οι παραστάσεις μέλους Λίστα, Εγγραφή και Πίνακας, καθώς και οι παραστάσεις let (Μετάβαση σε παραστάσεις, τιμές και παράσταση let), αξιολογούνται με τη χρήση αργής αξιολόγησης. Δηλαδή, αξιολογούνται όταν χρειάζεται. Όλες οι άλλες παραστάσεις αξιολογούνται με τη χρήση γρήγορης αξιολόγησης. Δηλαδή, αξιολογούνται αμέσως όταν συναντούνται κατά τη διάρκεια της διαδικασίας αξιολόγησης. Ένας καλός τρόπος για να το σκεφτείτε αυτό είναι να θυμηθείτε ότι η αξιολόγηση μιας παράστασης λίστας ή εγγραφής θα επιστρέψει μια τιμή λίστας ή εγγραφής που γνωρίζει πώς πρέπει να υπολογιστούν τα στοιχεία της λίστας ή τα πεδία εγγραφής, όταν ζητηθεί (μέσω τελεστών αναζήτησης ή ευρετηρίου).