Από το εγχειρίδιο
Το jq υποστηρίζει το ίδιο σύνολο τύπων δεδομένων με το JSON: αριθμούς, συμβολοσειρές, Boolean, πίνακες, αντικείμενα (που στη γλώσσα του JSON είναι hashes με κλειδιά μόνο συμβολοσειρών) και "null".
Ας επικεντρωθούμε στους αριθμούς.
Όλοι οι αριθμοί, είτε είναι ακέραιοι είτε όχι, είναι αριθμοί κινητής υποδιαστολής διπλής ακρίβειας IEEE754. Αυτό μας περιορίζει σε 53 bit ακρίβειας.
Οι συνήθεις τελεστές είναι διαθέσιμοι για χρήση με αριθμούς:
αριθμητικές πράξεις: +, -, *, /, %
συγκρίσεις: ==, !=, <, <=, >=, >
τυπικές μαθηματικές συναρτήσεις
Για συναρτήσεις με ένα όρισμα, διοχέτευσε την τιμή στη συνάρτηση
$ jq -n '(1 | atan) * 4'
3.141592653589793
Για συναρτήσεις με δύο ορίσματα, οι συναρτήσεις αγνοούν την είσοδο και περιμένουν τα ορίσματα ως παραμέτρους (θυμήσου ότι οι παράμετροι χωρίζονται με ερωτηματικό)
$ jq -n 'pow(2; 10)'
1024
Ο διαχωριστής των ορισμάτων των συναρτήσεων είναι το ερωτηματικό, όχι το κόμμα.
jq
Για να λύσεις την άσκηση, θα χρειαστεί να μάθεις για τις εκφράσεις υπό συνθήκη.
Το jq χρησιμοποιεί μια έκφραση if-then-else για τις εκφράσεις υπό συνθήκη.
Ως έκφραση, τοποθετείται μέσα σε ένα pipeline.
Η σύνταξη είναι: if CONDITION then TRUE_EXPR else FALSE_EXPR end.
Η ρήτρα else είναι προαιρετική.
42 | if . < 33 then "small" else "larger" end
# => "larger"
Για επιπλέον συνθήκες, χρησιμοποίησε το elif
42 | if . < 33 then "small"
elif . < 67 then "medium"
else "large"
end
# => "medium"
Σε αυτή την άσκηση θα γράψεις κώδικα για να αναλύσεις την παραγωγή μιας γραμμής συναρμολόγησης σε ένα εργοστάσιο αυτοκινήτων.
Η ταχύτητα της γραμμής συναρμολόγησης μπορεί να κυμαίνεται από 0 (εκτός λειτουργίας) έως 10 (μέγιστη).
Στη χαμηλότερη ταχύτητά της (1), παράγονται 221 αυτοκίνητα κάθε ώρα.
Η παραγωγή αυξάνεται γραμμικά με την ταχύτητα.
Έτσι, με την ταχύτητα ρυθμισμένη στο 4, θα πρέπει να παράγει 4 * 221 = 884 αυτοκίνητα την ώρα.
Ωστόσο, οι υψηλότερες ταχύτητες αυξάνουν την πιθανότητα να παραχθούν ελαττωματικά αυτοκίνητα, τα οποία στη συνέχεια πρέπει να απορριφθούν.
Ο παρακάτω πίνακας δείχνει πώς η ταχύτητα επηρεάζει το ποσοστό επιτυχίας:
1 έως 4: ποσοστό επιτυχίας 100%.5 έως 8: ποσοστό επιτυχίας 90%.9: ποσοστό επιτυχίας 80%.10: ποσοστό επιτυχίας 77%.Έχεις δύο εργασίες.
Υπολόγισε τον ρυθμό παραγωγής της γραμμής συναρμολόγησης ανά ώρα, λαμβάνοντας υπόψη το ποσοστό επιτυχίας της.
Υπολόγισε πόσα ολοκληρωμένα, λειτουργικά αυτοκίνητα παράγονται ανά λεπτό.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις jq με 12 έννοιες75 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.