This page contains a Flash digital edition of a book.
14.9 Sottofunzioni e Funzioni


RunScript è la funzione base che viene utilizzata da tutti i componenti. Questo è ciò che si vedrà aprendo un componente script di default in Grasshopper:


Sub RunScript(ByVal x As Object, ByVal y As Object) ‘’’<il tuo codice…>


End Sub


Sub… End Sub: Sono parole chiave che includono blocchi di codice della funzione “RunScript”: è il nome della sottofunzione “(…)”: Le parentesi dopo il nome della Sottofunzione includono i parametri di input “ByVal x As Object,…”: Sono i parametri di input


Ogni parametro di input necessita di essere definito nel seguente modo:


• ByRef o ByVal: Specifica se un parametro è definito per valore o per riferimento. • Name: nome del parametro • Tipo di parametro, preceduto da “As” come parola chiave.


Notare che i parametri di input nelle Sottofunzioni RunScript di Grasshopper sono tutti definiti da valore (parola chiave ByVal). Questo significa che sono copie degli input originali, e ogni variazione di questi parametri all'interno dello script non modificherà in nessun modo l'input originale. Però, se vengono definite altre Sottofunzioni o funzioni all'interno del componente script, i parametri possono essere definiti come riferimento (ByRef). Definire i parametri come riferimento significa che ogni variazione di questi parametri all'interno della funzione cambierà anche il valore originale da cui questi hanno preso riferimento.


Non è sempre necessario includere tutto il codice all'interno del corpo RunScript, è anche possibile definire, se necessario, sottofunzioni e funzione esterne da richiamare. Perchè usare funzioni esterne? • Per semplificare il codice della funzione principale. • Per rendere il codice più leggibile. • Per isolare e riusare funzionalità comuni. • Per definire funzioni specializzate, come iterazioni.


Qual'è la differenza tra Sottofunzioni e Funzioni? Si utilizzano Sottofunzioni se non si ha necessità di valori di ritorno. Le funzioni permettono di ritornare un risultato. Basicamente si assegna un valore al nome della funzione. Per esempio:


Function AddFunction( ByVal x As Double, ByVal y As Double ) AddFunction = x + y


End Function


Come è già stato detto, non c'è necessità di avere una Funzione per avere un valore di ritorno. Anche le Sottofunzioni possono compiere lo stesso processo attraerso parametri di input definiti come “ByRef”. Nel seguente, “rc” è usato per ritornare il risultato:


Sub AddSub( ByVal x As Double, ByVal y As Double, ByRef rc As Double )


107


Page 1  |  Page 2  |  Page 3  |  Page 4  |  Page 5  |  Page 6  |  Page 7  |  Page 8  |  Page 9  |  Page 10  |  Page 11  |  Page 12  |  Page 13  |  Page 14  |  Page 15  |  Page 16  |  Page 17  |  Page 18  |  Page 19  |  Page 20  |  Page 21  |  Page 22  |  Page 23  |  Page 24  |  Page 25  |  Page 26  |  Page 27  |  Page 28  |  Page 29  |  Page 30  |  Page 31  |  Page 32  |  Page 33  |  Page 34  |  Page 35  |  Page 36  |  Page 37  |  Page 38  |  Page 39  |  Page 40  |  Page 41  |  Page 42  |  Page 43  |  Page 44  |  Page 45  |  Page 46  |  Page 47  |  Page 48  |  Page 49  |  Page 50  |  Page 51  |  Page 52  |  Page 53  |  Page 54  |  Page 55  |  Page 56  |  Page 57  |  Page 58  |  Page 59  |  Page 60  |  Page 61  |  Page 62  |  Page 63  |  Page 64  |  Page 65  |  Page 66  |  Page 67  |  Page 68  |  Page 69  |  Page 70  |  Page 71  |  Page 72  |  Page 73  |  Page 74  |  Page 75  |  Page 76  |  Page 77  |  Page 78  |  Page 79  |  Page 80  |  Page 81  |  Page 82  |  Page 83  |  Page 84  |  Page 85  |  Page 86  |  Page 87  |  Page 88  |  Page 89  |  Page 90  |  Page 91  |  Page 92  |  Page 93  |  Page 94  |  Page 95  |  Page 96  |  Page 97  |  Page 98  |  Page 99  |  Page 100  |  Page 101  |  Page 102  |  Page 103  |  Page 104  |  Page 105  |  Page 106  |  Page 107  |  Page 108  |  Page 109  |  Page 110  |  Page 111  |  Page 112  |  Page 113  |  Page 114  |  Page 115  |  Page 116  |  Page 117  |  Page 118  |  Page 119  |  Page 120  |  Page 121  |  Page 122  |  Page 123  |  Page 124  |  Page 125  |  Page 126  |  Page 127  |  Page 128  |  Page 129  |  Page 130  |  Page 131  |  Page 132  |  Page 133  |  Page 134  |  Page 135  |  Page 136  |  Page 137  |  Page 138  |  Page 139  |  Page 140  |  Page 141  |  Page 142  |  Page 143  |  Page 144  |  Page 145  |  Page 146  |  Page 147  |  Page 148  |  Page 149  |  Page 150  |  Page 151  |  Page 152  |  Page 153  |  Page 154  |  Page 155  |  Page 156  |  Page 157  |  Page 158  |  Page 159  |  Page 160  |  Page 161  |  Page 162  |  Page 163  |  Page 164