Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

397
Views
¿Hay alguna diferencia entre la función "mutante" y los parámetros "inout" en Swift?

Según la documentación de Swift, tanto las palabras clave de mutación como las de entrada y salida se utilizan para modificar los tipos de valores desde dentro de una función. ¿Hay alguna diferencia entre "mutar" e "inout" y cualquier caso especial en el que necesitemos usar cualquiera de ellos?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

la mutating marca un método. inout marca un parámetro. Son cosas completamente diferentes.

Los métodos marcados con mutating pueden mutar a self , es decir, establecer propiedades de self , reasignarse a self mismos, etc.

 struct Foo { var foo: Int mutating func mutate() { foo += 1 // this is mutating self } }

Los parámetros marcados con inout básicamente se convierten en variables var , a diferencia de las constantes let . Puede cambiarlos y los cambios también se reflejarán en el lado de la persona que llama.

 func f(_ x: inout Int) { x = 10 } var a = 1 f(&a) print(a) // 10
over 4 years ago · Santiago Trujillo Report

0

Para mí, veo la diferencia solo en los lugares donde se usan.

El parámetro marcado con la palabra clave inout le permite pasar su valor a cualquier método similar como referencia

 func square(inout num: Int) { num = num * num }

Por el contrario, el método marcado con la palabra clave mutating se usa en el alcance del tipo y le permite cambiar el valor de este método.

 extension Int { mutating func square() { self = self * self } }
over 4 years ago · Santiago Trujillo Report

0

Los métodos de instancia de los tipos de valor no pueden cambiar las propiedades del tipo de valor (o el valor en sí), a menos que estén marcados como mutating .

Las funciones de cualquier tipo no pueden cambiar sus parámetros (y hacer que el cambio se propague fuera de la función) a menos que esos parámetros estén marcados como inout .

Hacen un trabajo similar, pero en diferentes contextos.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!