Java Reference

In-Depth Information

How to do it...

In JavaFX, A function is a specialized code block preceded by the
function
keyword. It

can accept zero or more typed parameters and always returns a typed value. Here is the

declaration of a function type assigned to variable called
squareIt,
which returns the

squared value of the number passed in as parameter. Complete code listing can be found

at
ch01/source-code/src/javafx/SimpleFunction.fx
.

var squareIt : function(:Number):Number;

squareIt = function (x) {

x * x;

}

var square3 = squareIt(3);

println ("3 squared = {square3}");

How it works...

In JavaFX, a function has a distinct, definable type (similar to String, Number, and Integer).

A function type is defined by its parameter signature and its return type. Variables (and

parameters) can be assigned a function type. For instance, in the previous snippet, variable

squareIt
is declared as being a function type. This means that the variable
squareIt
can

be assigned a function that takes one parameter of type
Number
and returns a value of type

Number
.
squareIt
can be used anywhere a function call can be used, as shown in the call

var
square3 = squareIt(3)
.

Note that the declaration and definition of the function can be combined in one step, as

show next:

function squareIt(x:Number):Number{

x * x;

}

The JavaFX compiler can infer the types associated with a function's parameter signature and

return value. Therefore, the function definition can be reduced to:

function squareIt(x) {

x*x;

}

The type inference engine in JavaFX will determine the proper type of the parameter based on

value of the parameter at runtime. The return type of the function is based on the type of the

last statement in the function or the type of the value used in the
return
statement.