Я новичок в Swift, и я хотел бы знать, имеет ли язык какой-то эквивалент рисунка декоратора Python.
Например:Декораторы в Swift
import functools
def announce(func):
"""Print a function's arguments and return value as it's called."""
@functools.wraps(func)
def announced_func(*args, **kwargs):
rv = func(*args, **kwargs)
print('In: {0}, {1}'.format(args, kwargs))
print('Out: {}'.format(rv))
return rv
return announced_func
@announce # add = announce(add)
def add(a, b):
return a + b
add(2, 5)
# In: (2, 5), {}
# Out: 7
# 7
Может быть, я просто не нашел еще, но Swift, кажется, не есть способ направить произвольные аргументы функций или для сохранения информации обернутой функции (как functools.wraps делает).
Есть ли эквивалент или шаблон, который не предназначен для использования в Swift?