В Ruby, я могу потребовать аргумент как (1) появляются, и (2) имеют имя параметра:Может ли быть указан параметр Julia, который должен присутствовать?
>> def f(x:)
>> x + 1
>> end
>> f()
ArgumentError: missing keyword: x
>> f(2)
ArgumentError: wrong number of arguments (given 1, expected 0)
>> f(x:7)
=> 8
То есть, я есть передать аргумент, и я есть, чтобы указать имя связанного параметра.
я могу сделать то же самое в Python:
>>> def f(*, x):
... return x + 1
...
>>> f()
TypeError: f() missing 1 required keyword-only argument: 'x'
>>> f(3)
TypeError: f() takes 0 positional arguments but 1 was given
>>> f(x=7)
8
И для хорошей меры, даже Swift может сделать это:
1> func f(x: Int) -> Int {return x + 1}
2> f()
error: missing argument for parameter 'x' in call
2> f(3)
error: missing argument label 'x:' in call
2> f(x:7)
$R0: Int = 8
Но я не могу понять, как сделать это в Julia. Кажется, что аргументы ключевого слова, поскольку они вызываются, должны принимать параметры по умолчанию. Это правильно, или есть способ имитировать примеры Ruby и Python выше?
Вы имеете в виду 'ничего ' – amrods
@amrods спасибо, исправлено. –
Конечно, как Python, так и Ruby также обеспечивают правильность во время выполнения, как динамические языки. –