I’ve got a function like this:
func next(step: Int = 1){
//....
}
And now I would like to define a type alias so that I can easily pass around this function.
However I am not able to find a way to declare that the first argument has a default value. I tried things like this
typealias ActionNext = (step: Int = default) -> ()
var nextFunc: ActionNext = next
but they all give me a error message like
Default argument not permitted in a tuple type
Is there any way to define a type for this kind of function?
Python Default Arguments Function arguments can have default values in Python. We can provide a default value to an argument by using the assignment operator (=). Here is an example. def greet(name, msg="Good morning!"): """ This function greets to the person with the provided message.
A default argument is a value provided in a function declaration that is automatically assigned by the compiler if the calling function doesn't provide a value for the argument. In case any value is passed, the default value is overridden.
No, that is not possible
Explanation:
A type alias declaration introduces a named alias of an existing type into your program.
(step: Int = 1) -> ()
is not a proper type. A type is for example (step: Int) -> ()
, a default value is not allowed there.
If you write
typealias ActionNext = (Int) -> ()
var nextFunc: ActionNext = next
It works. Or even when you write (step: Int) -> ()
But I assume what you want to achieve is being able to call nextFunc()
omitting the parameter and using its default value. That is not possible. To understand why, you can follow the Type Alias Declaration
grammar - in the type
you can not specify default values.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With