5

Supponiamo di avere la seguente funzione di esempio non funzionante in uno script di app di google. La funzione è progettata per essere chiamato da un foglio di Google con un argomento stringa:Come si passa un argomento al debugger di script di Google Apps?

function myFunction(input) { 
    var caps = input.toUpperCase() 
    var output = caps.substrin(1, 4) 
    return output 
} 

Anche se questo script di esempio dovrebbe rompere sulla linea 3 quando si seleziona myFunction e premere il debug, in quanto non esiste tale metodo come "substrin ()," si romperà sulla linea 2, perché non si può mettere definito in tutte le protezioni:

TypeError: Cannot call method "toUpperCase" of undefined. (line 2, file "Code")

domanda: c'è un modo ufficiale per passare una stringa in un google-apps Script per il test/debug senza eseguire una funzione aggiuntiva

function myOtherFunction() { 
myFunction("testString") 
} 

e debug che?

risposta

6

La funzione come è stata scritta ha bisogno di un parametro e non c'è modo di evitarlo tranne che includendo un valore predefinito nella funzione stessa. Vedere l'esempio sotto

function myFunction(input) { 
    input= input||'test'; 
    var caps = input.toUpperCase(); 
    var output = caps.substrin(1, 4); 
    return output; 
} 
+0

Quindi questo scegli 'test' se l'input inizia come indefinito, ma altrimenti usa l'input? Come decide quale usare? E non c'è l'interfaccia utente di Google per questo? – Menasheh

+0

Sì. Aggiungi un Logger.log (output) prima di tornare per essere in grado di visualizzare l'output –

+0

input = input || 'test' è una scorciatoia per se (! input) input = 'test'; il logico o ("||") converte l'input in vero o falso, e se falso, sceglie il secondo operando. Nota, tuttavia, che 0 valuterà in falso, quindi se viene passato 0, l'input sarà 'test'. È possibile evitare questo utilizzando: input = (input! == undefined)? input: 'test'; D'altra parte, * any * string testerà come vero: ("", "0", "false", "undefined") valuteranno tutti su true. – HardScale

Problemi correlati