Questão nº 37
Questão de Tecnologia da Informação · CESGRANRIO BB 01/2022 (nº 37)
Em um programa em Swift, o programador deseja incluir o resultado de uma operação dentro de uma string.
Nesse contexto, considere o seguinte código:
```swift
let quantidade = 4
let valor = 10
```
Dado o código acima, o programador deseja uma string saida cujo valor seja
"valor total = 40"
Para isso, o programador deve utilizar o seguinte fragmento de código Swift:
- A`let saida := "valor total = \(quantidade*valor)"`
- B`let saida := "valor total = \{quantidade*valor}"`
- C`let saida = "valor total = %[quantidade*valor]"`
- D`let saida = "valor total = \(quantidade*valor)"` (alternativa correta)
- E`let saida = "valor total = \[quantidade*valor]"`
Resposta comentada
Gabarito Alternativa D
Em Swift, para interpolar (inserir) o valor de uma variável ou expressão dentro de uma string, usamos a sintaxe \(expressão). O \(...) é um marcador que o Swift substitui pelo resultado calculado na hora de montar a string.
- (A) Incorreta: O operador
:=não existe em Swift para atribuição (o correto é=), e a sintaxe\(...)está correta, mas o:=invalida a linha. - (B) Incorreta: O
:=é inválido, e a barra invertida com chaves\{...}não é a sintaxe de interpolação do Swift (o correto é\(...)). - (C) Incorreta: O
%[...]é um formato de outras linguagens (como C/Objective-C), não é usado em Swift para interpolação; além disso, falta o\(...). - (D) Correta: Usa
=para atribuição e\(quantidade*valor)para interpolar a expressão matemática, que será calculada e convertida para texto, resultando em"valor total = 40". - (E) Incorreta: A barra invertida antes do colchete
\[não é um marcador de interpolação; o Swift interpretaria literalmente como texto, e não calcularia nada.
Fonte: CESGRANRIO BB 01/2022 Escriturário - Agente de Tecnologia (Caderno Gabarito 1). Reproduzida para fins de estudo.