Есть ли способ быстро объявить встроенную функцию?
Я очень новичок в быстром языке
Я хотел объявить встроенную функцию, как в С++
поэтому моя забавная декларация похожа на
func MyFunction(param: Int) -> Int {
...
...
...
}
и я хочу сделать что-то вроде
inline func MyFunction(param: Int) -> Int {
...
...
...
}
Я пытался искать в Интернете, но я не нашел ничего подходящего
возможно, нет ключевого слова inline, но, возможно, есть другой способ встроить функцию
Большое спасибо:)
Ответы
Ответ 1
Swift 1.2 будет включать атрибут @inline
с параметрами never
и __always
. Для получения дополнительной информации см. здесь.
Как указано выше, вам редко нужно явно объявлять функцию как @inline(__always)
, потому что Swift довольно умна, когда встроить функцию. Однако, не имея встроенной функции, может потребоваться некоторый код.
Ответ 2
Всем известно о ответе , просто суммируя информацию из ссылки .
Чтобы сделать функцию inline, просто добавьте @inline(__always)
перед функцией:
@inline(__always) func myFunction() {
}
Однако стоит подумать и узнать о разных возможностях. Существует три возможных способа встраивания:
- иногда - всегда будет устанавливать функцию. Это поведение по умолчанию, вам ничего не нужно делать! Компилятор Swift может автоматически включать функции в качестве оптимизации.
- всегда - всегда будет поддерживать функцию. Достичь этого поведения, добавив
@inline(__always)
перед функцией. Используйте "если ваша функция довольно мала, и вы предпочли бы, чтобы ваше приложение работало быстрее".
- никогда - никогда не включит функцию. Это может быть достигнуто добавлением
@inline(never)
перед функцией. Используйте "если ваша функция довольно длинная, и вы хотите избежать увеличения размера сегмента кода".