/*
Basic Structure of a Function
Type Annotation for Function Parameter...
+ Is Mandatory and is not Inferred
Type Annotation for Result Type...
+ Is Mandatory if the Function is recursive #69
+ Optional is the Function is not recursive
An expression in the Last statement(in this case
x + y...will be considered as a return value and no
mandatory 'return' keyword is needed as in Java
*/
def sum(x: Int, y: Int) : Int = {
x + y
}
sum(9, 10)
/*
Type Annotation for the Result Type is
optional if function is not a Recursive function #69
Recommended : It is always recommended to include
the Return/Result type to make the code
readable #69
*/
def sum(x: Int, y: Int) = {
x + y
}
/*
For a function that contains only a single statement
Curly braces is Optional
*/
def sum(x: Int, y: Int) = x + y
scala> /*
| Basic Structure of a Function
| Type Annotation for Function Parameter...
| + Is Mandatory and is not Inferred
| Type Annotation for Result Type...
| + Is Mandatory if the Function is recursive #69
| + Optional is the Function is not recursive
| An expression in the Last statement(in this case
| x + y...will be considered as a return value and no
| mandatory 'return' keyword is needed as in Java
| */
| def sum(x: Int, y: Int) : Int = {
| x + y
| }
sum: (x: Int, y: Int)Int
scala> sum(9, 10)
res9: Int = 19
scala>
scala> /*
| Type Annotation for the Result Type is
| optional if function is not a Recursive function #69
| Recommended : It is always recommended to include
| the Return/Result type to make the code
| readable #69
| */
| def sum(x: Int, y: Int) = {
| x + y
| }
sum: (x: Int, y: Int)Int
scala>
scala> /*
| For a function that contains only a single statement
| Curly braces is Optional
| */
| def sum(x: Int, y: Int) = x + y
sum: (x: Int, y: Int)Int
Unit : A method which do not return any result is indicated by 'Unit' type
Side Effect : A method that returns Unit is only executed for its Side effect
scala> def hello() = println("This is hello world")
hello: ()Unit
Note : The Method Parameters are always 'val' #102
Reference : #70