Considere o seguinte código em Swift: var nome = "João" let closure = { [nome] in print("Olá \(nome)")} nome = "Maria" closure() Assinale a opção que indica a saída do terminal após a execução do código acima.
Alternativas
A)
A saída do código será "Olá " (uma saída vazia sem o nome).
B)
A saída do código será "Olá João Maria".
C)
A saída do código será "Olá João".
D)
A saída do código será "Olá Maria".
E)
O código retornará um erro.
Gabarito e comentário
Resposta correta: C
A lista de captura [nome] guarda o valor existente na criação da closure. A mudança posterior da variável para Maria não altera o João capturado.
A lista de captura [nome] guarda o valor existente na criação da closure. A mudança posterior da variável para Maria não altera o João capturado.