Nel primo articolo di questa piccola rubrica relativa alle Google Apps Script, abbiamo visto come accedere all’ambiente di sviluppo, ora vedremo come costruire alcune piccole utili funzioni. Il mio obiettivo primario sarà quello di fornirvi nel tempo gli strumenti basilari per la costruzione di funzioni sempre più complesse. Programmare infatti è un pò come costruire con il Lego: ci vogliono i mattoncini giusti. Nel codice di programmazione del primo esercizio è stata utilizzata la funzione Browser.msgBox(). Si tratta di una funzione molto semplice che permette di generare un messaggio per l’utente. Oggi vedremo di proseguire introducendo le funzioni che permettono il recupero di valori in input dall’utente, inoltre introdurremo anche l’uso delle indispensabili variabili.
PROGRAMMA CIAO 2
Il programma che andiamo a descrivere oggi permette di capire come Google Apps Script gestisce l’uso delle variabili e quanto sia importante per noi costruire piccole funzioni ben fatte. Quest’ultime infatti ci permetteranno di rendere il nostro programma facilmente leggibile. Partiamo subito con il codice ed una spiegazione del relativo contenuto. Seguendo le istruzioni della “lezione” precedente andate ad incollare nell’editor le seguenti righe di codice, (quelle in blu), sostituendo per intero l’esistente.
function onOpen() { SpreadsheetApp.getUi() .createMenu("Programmi miei") .addItem("ciao 2", "ciao2") .addToUi(); } function ciao2() { var nome_utente = input("Ciao, sono il tuo computer, come ti chiami?") var anno_di_nascita = input("Quando sei nato?") put("Caro " + nome_utente + " deduco tu abbia " + (2020 - anno_di_nascita) + " anni!") } function input(s) { var ui = SpreadsheetApp.getUi(); var result = ui.prompt(s, ui.ButtonSet.OK_CANCEL); var button = result.getSelectedButton(); var text = result.getResponseText() return(text) } function put(s) { Browser.msgBox(s) }
NEL DETTAGLIO
Esaminiamo una funzione alla volta partendo dalla più piccola:
function put(s) {
Browser.msgBox(s)
}
Questa funzione che ho deciso di chiamare put() non fa altro che ricevere una stringa che verrà associata alla variabile s e successivamente visualizzarne il contenuto a video tramite il comando Browser.msgBox(s). D’ora in poi durante la scrittura del nostro programma ci basterà utilizzare comandi come per esempio put(“ciao”) per indicare al computer di scrivere a video il messaggio ciao.
function input(s) {
var ui = SpreadsheetApp.getUi();
var result = ui.prompt(s, ui.ButtonSet.OK_CANCEL);
var button = result.getSelectedButton();
var text = result.getResponseText()
return(text)
}
Non voglio invece sviscerare il contenuto della funzione input(), perché lo ritengo prematuro essendo relativamente complicato. Vi basti sapere che dopo averla creata potrete far si che i vostri programmi interpellino l’utente per avere dei dati in input. In ogni caso per chi fosse interessato ad approfondire i comandi contenuti in questa funzione consiglio di far riferimento alla guida ufficiale: https://developers.google.com/apps-script/reference/base/ui .
Il nostro programma vero e proprio è definito dalla funzione ciao2(), è, in effetti, con queste tre righe che vedremo realizzare l’intento prefissato:
function ciao2() {
var nome_utente = input(“Ciao, sono il tuo computer, come ti chiami?”)
var anno_di_nascita = input(“Quando sei nato?”)
put(“Caro ” + nome_utente + ” deduco tu abbia ” + (2020 – anno_di_nascita) + ” anni!”)
}
La prima riga assegna alla variabile denominata “nome_utente” ciò che l’utente risponderà alla domanda “Ciao, sono il tuo computer, come ti chiami?”. Stessa cosa succede per la variabile “anno_di_nascita”. Fatto questo il nostro programma avrà la possibilità di riutilizzare le variabili immagazzinate a suo piacimento, infatti alla riga tre restituirà un messaggio in cui farà uso dei dati in suo possesso rielaborandoli.
IN CONCLUSIONE
È importantissimo notare come grazie alla buona scrittura delle funzioni preliminari il programma finale risulta composto da poche righe semplici. Vi assicuro che mantenere una certa semplicità aiuta moltissimo ad affrontare programmi anche complessi. Tra gli addetti ai lavori si riutilizza spesso la locuzione latina “Dīvide et impera” che letteralmente significa: “dividi e conquista”. Dovrete sempre dividere ogni problema in componenti semplici per padroneggiare con facilità situazioni complesse.
Nel prossimo articolo non intendo affrontare un programma nuovo, ma riscrivere quello visto oggi aggiungendo l’uso di variabili globali, introdurrò quello che viene chiamato “scope”. Inoltre vedremo anche come gestire eventuali errori di input.
Massimiliano Brambilla
Works at B-Software