Gå till huvudinnehåll Gå till ytterligare innehåll

Dollarteckenexpansion med parametrar

Parametrar kan användas i dollarteckenexpansioner. Det gör det möjligt att ha en dynamisk utvärdering av variabeln.

Variabeln som skapas för användning i expansionen måste innehålla formella parametrar. En formell parameter är en platshållare för inmatning till utvärderingen och skrivs med ett dollartecken: $1, $2, $3. Talet indikerar parameternumret.

När variabeln används ska de faktiska parametrarna anges i en kommaseparerad lista.

Exempel: Parametrar i dollarteckenexpansioner

Om du vill definiera en multiplikation mellan två tal kan du skriva:

Set MUL= $1*$2 ;

Det definierar att $1 och $2 ska multipliceras med varandra. När den används måste den här variabeln dollarexpanderas med värden för $1 och $2 som infogas i uttrycket:

Set X= $( MUL(3,7) ) ;

Värdena (3 och 7) är de faktiska parametrarna som ersätter $1 och $2 i expansionen. Expansionen görs innan set-satsen tolkas och körs, vilket innebär att skriptparsern ser följande:

Set X= 3*7 ;

Det innebär att variabeln X kommer att tilldelas strängvärdet: 3*7.

Om du använder en Let-sats istället för Set-satsen:

Let X= $( MUL(3,7) ) ;

Parsern kommer att se följande:

Let X= 3*7 ;

Här kommer en utvärdering att göras och X kommer att tilldelas det numeriska värdet 21.

Antalet parametrar

Om antalet formella parametrar överskrider antalet faktiska parametrar kommer endast de formella parametrar som motsvaras av faktiska parametrar att expanderas. Om antalet faktiska parametrar överskrider antalet formella parametrar kommer de överflödiga faktiska parametrarna att ignoreras.

Exempel: Formella parametrar kontra faktiska parametrar

Set MUL= '$1*$2' ;
Set X= $(MUL) ;         // returns $1*$2 in X
Set X= $(MUL(10)) ;     // returns 10*$2 in X
Let X= $(MUL(5,7,8)) ;  // returns 35 in X

Parametern $0

Parametern $0 returnerar antalet parametrar som faktiskt har anropats.

Exempel: Så här går det till att introducera felhantering

Set MUL= If($0=2, $1*$2, 'Error') ;

Mer information

Var den här sidan till hjälp för dig?

Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!