FGV — Analista Legislativo - Informática Legislativa — Captura em closures — 2023

Enunciado

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

  1. A)

    A saída do código será "Olá " (uma saída vazia sem o nome).

  2. B)

    A saída do código será "Olá João Maria".

  3. C)

    A saída do código será "Olá João".

  4. D)

    A saída do código será "Olá Maria".

  5. 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.

Questões relacionadas