Ενέργειες κώδικα
Όταν ο γράφος δεν αρκεί, το κουτί Κώδικας εκτελεί ένα σενάριο κώδικα.
Είναι διαθέσιμες επτά γλώσσες, όλες εκτελούμενες μέσα σε ένα ενσωματωμένο απομονωμένο περιβάλλον WebAssembly: δεν απαιτείται κανένας διερμηνέας στο μηχάνημά σας, και το σενάριο κώδικα δεν έχει πρόσβαση στο σύστημα αρχείων σας.
| Γλώσσα | Μηχανή |
|---|---|
| TypeScript | QuickJS (οι τύποι αφαιρούνται κατά τη μεταγλώττιση) |
| JavaScript | QuickJS |
| Python | Pyodide (CPython μεταγλωττισμένη σε WebAssembly) |
| Lua | Lua 5.4 σε WebAssembly |
| Ruby | CRuby σε WebAssembly |
| R | WebR |
| C# | .NET σε WebAssembly με Roslyn |
Η προεπιλεγμένη γλώσσα είναι η TypeScript.
Το κοινό συμβόλαιο
Section titled “Το κοινό συμβόλαιο”Όποια κι αν είναι η γλώσσα, το κουτί εκθέτει τα ίδια πράγματα:
| Είσοδοι | value (με όνομα input), code (συμβολοσειρά) |
| Έξοδοι | result |
| Διαμόρφωση | language, code, timeout, packages |
input— η τιμή που λαμβάνεται στη θύρα εισόδου.vars— οι μεταβλητές εκτέλεσης.- Η τυπική έξοδος της γλώσσας (
console.log,print,puts,cat,Console.WriteLine) τροφοδοτεί το αρχείο καταγραφής της εκτέλεσης. - Η τιμή που επιστρέφεται φεύγει στη θύρα
result. Ένα σφάλμα ή μια υπέρβαση χρονικού ορίου φεύγει στη θύραerror.
Το χρονικό όριο λήξης
Section titled “Το χρονικό όριο λήξης”Το timeout, σε δευτερόλεπτα: 5 εξ ορισμού, 60 το μέγιστο. Ένα σενάριο
κώδικα που το υπερβαίνει διακόπτεται και η εκτέλεση φεύγει στη θύρα error.
Τα εξωτερικά πακέτα
Section titled “Τα εξωτερικά πακέτα”Το πεδίο packages δέχεται μια λίστα από { nom, version }. Οι ακριβείς
εκδόσεις χρησιμεύουν ως κλειδί προσωρινής μνήμης: οι εξαρτήσεις επιλύονται
στην πρώτη εκτέλεση, αποθηκεύονται προσωρινά, και έπειτα τοποθετούνται
εκτός σύνδεσης σε κάθε επόμενη εκτέλεση — ακόμη και σε CI.
| Γλώσσα | Πηγή |
|---|---|
| TypeScript / JavaScript | npm (το σύνολο πακετάρεται) |
| Python | Τροχοί καθαρής Python από το PyPI |
| Lua | LuaRocks (πηγές καθαρής Lua) |
| Ruby | Gems καθαρής Ruby |
| R | CRAN, μέσω του αποθετηρίου WebAssembly του WebR |
| C# | Κανένα — μόνο η τυπική βιβλιοθήκη .NET |
Πότε να μη γράψετε κώδικα
Section titled “Πότε να μη γράψετε κώδικα”Πολλές ανάγκες καλύπτονται ήδη από κουτιά, πιο ευανάγνωστα και πιο γρήγορα:
| Ανάγκη | Κουτί |
|---|---|
| Εξαγωγή μιας τιμής από μια απόκριση | Ένας επιλογέας συνδέσμου |
| Μορφοποίηση μιας συμβολοσειράς | Μετασχηματισμός |
| Φιλτράρισμα, ταξινόμηση, συνάθροιση μιας λίστας | Λίστες |
| Κατακερματισμός, κωδικοποίηση, υπογραφή | Κωδικοποίηση |
| Έλεγχος μιας δομής | Επικύρωση σχήματος |
Κρατήστε το κουτί Κώδικας για τη λογική που είναι πραγματικά ειδική.