Local functions
Local functions are functions declared inside a function. They are also called nested functions. They are popular in scripting languages, but some other modern Object-Oriented languages, like Scala, Swift, and C# (since 7.0) also have them. One of the uses of local functions is code reuse. You can extract a piece of code that is repeated inside a local function so the code can be reused:
fun printUserDetails(user: User) { fun tryPrint(str: String) { if (str.length > 5) { println(str) } else { println("I print strings with more than 5 characters") } } tryPrint(user.firstName) tryPrint(user.lastName) tryPrint(user.address) }
You can see how the function tryPrint
is declared inside the printUserDetails
function. We can call the nested function just as we would a normal function. The only difference between this and regular functions is the visibility. Local functions are only visible inside the function they were declared in. You...