thp-web/md/learn/functions/declaration.md

71 lines
759 B
Markdown

# Declaration
## No parameters, no return
```thp
fun say_hello()
{
print("Hello")
}
say_hello()
```
## With return type
```thp
fun get_random_number() -> Int
{
Random::get(0, 35_222)
}
val number = get_random_number()
```
## With parameters and return type
```thp
fun get_secure_random_number(Int min, Int max) -> Int
{
Random::get_secure(min, max)
}
val number = get_secure_random_number(0, 65535)
```
## Generic types
```thp
fun get_first_item[T](Array[T] array) -> T
{
array.[0]
}
val first = get_first_item[Int](numbers)
// The type annotation is optional if the compiler can infer the type
val first = get_first_item(numbers)
```
## Signature
```thp
() -> ()
() -> Int
(Int, Int) -> Int
[T](Array[T]) -> T
```