/* Page prose (es) */
"ActorIsolation" = "# Aislamiento de actor: `await` fuera, síncrono dentro\n\nMira de nuevo cómo leímos el saldo desde fuera: `await ledger.balance`. ¿Por qué el `await`?\n\nPorque el actor podría estar **ocupado**. Cuando llamas al método de un actor o lees su estado mutable **desde fuera**, tu tarea quizás tenga que esperar a que quien esté actualmente dentro termine. Esa posible espera es un punto de suspensión, y en Swift cada punto de suspensión se marca con `await`. Esto es el **aislamiento de actor**: el estado mutable del actor está *aislado* en el actor, y los de fuera lo alcanzan solo a través de `await`.\n\nDentro del actor, es distinto. El código que se ejecuta *dentro* del actor ya tiene el actor para sí mismo, así que toca su propio estado **de forma síncrona**, sin `await`.";
"ActorIsolation-2" = "**Míralo en acción:** verás `Balance is now 50`, `Balance is now 75`, y luego `Read from outside: 75`. Fíjate en el patrón: **cada** acceso desde el `Task` necesitó `await`; nada dentro de `deposit` o `report` lo necesitó. Dentro del actor, ya estás al frente de la fila.\n\n---\n\n## `nonisolated` para el estado que no necesita protección\n\nNo todo en un actor toca estado mutable. Un `let` inmutable nunca cambia, así que leerlo no puede generar una carrera; no hay razón para hacer que quienes lo llaman le hagan `await`. Marca esos miembros como **`nonisolated`** para excluirlos del aislamiento:\n\n```swift\nactor Account {\n    let owner: String   // immutable, safe to read anytime\n    private(set) var balance: Int\n\n    init(owner: String, balance: Int) {\n        self.owner = owner\n        self.balance = balance\n    }\n\n    nonisolated var label: String {\n        \"Account for \\(owner)\"   // only reads the immutable `owner`\n    }\n\n    func deposit(_ amount: Int) {\n        balance += amount\n    }\n}\n\nlet account = Account(owner: \"Robin\", balance: 100)\nprint(account.label)   // no await, it's nonisolated\n```\n\nComo `label` solo lee el `owner` inmutable, se declara `nonisolated` y lo llamas como una propiedad normal, sin `await`, sin esperas. El detalle: un miembro `nonisolated` **no puede tocar el estado mutable del actor**. Intenta leer `balance` desde dentro de `label` y el compilador lo rechaza, porque ese acceso *sí* necesitaría protección. Ese error son las reglas de aislamiento manteniéndote honesto.\n\n> Si añadieras `balance` a la cadena `label` de arriba, el compilador rechazaría el código ahí mismo, porque los miembros `nonisolated` no pueden tocar estado aislado. Ese error es la regla de aislamiento funcionando como se pretende, no un error en tu código.\n\n[Anterior](@previous)  |  página 3 de 7  |  [Siguiente: Reentrancia](@next)";
