eureka custom community change ios swift swift2 swift3

ios - custom - eureka swift



''++'' está en desuso: se eliminará en Swift 3 (1)

Esta pregunta ya tiene una respuesta aquí:

Después de actualizar a Xcode 7.3 , hay muchas advertencias en mi proyecto.

''++'' está en desuso: se eliminará en Swift 3

¿Alguna idea para arreglar esta advertencia? ¿Alguna razón por la cual el ++ y -- quedarán obsoletos en el futuro?


Desde Swift 2.2, debes usar += 1 o -= 1 lugar.

Y después de observar la evolución de Swift, existen algunas razones para eliminar estos operadores:

  1. Estos operadores aumentan la carga de aprender Swift como primer lenguaje de programación, o en cualquier otro caso en el que no conozcan a estos operadores de un lenguaje diferente.

  2. Su ventaja expresiva es mínima: x ++ no es mucho más corto que x + = 1.

  3. Swift ya se desvía de C en el sentido de que =, + = y otras operaciones similares a la asignación devuelven Void (por varias razones). Estos operadores son inconsistentes con ese modelo.

  4. Swift tiene funciones potentes que eliminan muchas de las razones comunes por las que usarías ++ i en un estilo C para bucles en otros idiomas, por lo que estas se usan con poca frecuencia en el código Swift bien escrito. Estas características incluyen el bucle for-in, rangos, enumeración, mapa, etc.

  5. El código que realmente usa el valor de resultado de estos operadores suele ser confuso y sutil para un lector / mantenedor de código. Alientan el código "demasiado complicado" que puede ser lindo, pero difícil de entender.

  6. Si bien Swift tiene un orden de evaluación bien definido, cualquier código que dependa de él (como foo (++ a, a ++)) sería indeseable incluso si estuviera bien definido.

  7. Estos operadores son aplicables a relativamente pocos tipos: escalares enteros y de punto flotante, y conceptos similares a iteradores. No se aplican a números complejos, matrices, etc.

Finalmente, estos fallan en la métrica de "si no los tuviéramos, ¿los agregaríamos a Swift 3?"

Por favor revisa Swift evolution para más información.