Как в пользовательской функции создать один или несколько необязательных аргументов?

Для создания необязательных аргументов следует использовать ключевое слово Optional.

Передача аргумента по ссылке

Обычно передача аргумента функции осуществляется по значению. Это озна­чает, что в функцию передается копия данных, а не сами данные. Если аргумент функции изменяется внутри тела функции, это не оказывает никакого влияния на значения переменных за ее пределами.

Значения аргументов по умолчанию

Аргументу функции можно присвоить значение по умолчанию, которое будет использоваться, если при вы­зове аргумент не задан.