swift - retorno - ¿Hay alguna manera rápida de declarar una función en línea?
funciones en swift 4 (2)
Soy muy nuevo en el lenguaje rápido
Quería declarar una función en línea como en c ++, así que mi declaración divertida es como
func MyFunction(param: Int) -> Int {
...
...
...
}
y quiero que hagas algo como
inline func MyFunction(param: Int) -> Int {
...
...
...
}
Intenté buscar en la web, pero no encontré nada relevante. Quizás no haya una palabra clave en línea, pero tal vez haya otra forma de integrar la función.
Muchas gracias :)
Swift 1.2 incluirá el atributo @inline
, con never
y __always
como parámetros. Para más información, ver here .
Como se indicó anteriormente, rara vez necesita declarar una función explícitamente como @inline(__always)
porque Swift es bastante inteligente en cuanto a cuándo incluir una función en línea. No tener una función en línea, sin embargo, puede ser necesario en algunos códigos.
Todo el crédito a la answer , simplemente resumiendo la información del here .
Para hacer una función en línea simplemente agregue @inline(__always)
antes de la función:
@inline(__always) func myFunction() {
}
Sin embargo, vale la pena considerar y aprender sobre las diferentes posibilidades. Hay tres formas posibles de en línea:
- a veces - se asegurará de que a veces en línea la función. Este es el comportamiento predeterminado, ¡no tienes que hacer nada! El compilador Swift podría automáticamente en línea funcionar como una optimización.
- siempre - se asegurará de siempre en línea la función. Obtenga este comportamiento agregando
@inline(__always)
antes de la función. Use "si su función es bastante pequeña y preferiría que su aplicación se ejecutara más rápido". - Nunca - se asegurará de nunca en línea la función. Esto se puede lograr agregando
@inline(never)
antes de la función. Use "si su función es bastante larga y desea evitar aumentar el tamaño del segmento de su código".