Swift Flashcards
Como você explicaria os protocolos para um novo desenvolvedor Swift?
livre
What are property observers?
pesquisa ai
O que o protocolo CaseIterable faz?
Vá direto e responda que este protocolo nos permite percorrer todos os casos em um enum, mas depois siga com um exemplo prático - você pode ter um algoritmo de geração de pesquisa de palavras que tenha casos de enum para todas as direções possíveis em que você pode colocar uma palavra, então você percorre todas elas para tentar encontrar um local válido para cada palavra.
Qual é a diferença entre try, try?, and try! em Swift?
Abordagem sugerida: Um try regular exige que você detecte erros, try? converte a chamada de lançamento em opcional, onde você receberá zero em caso de falha e try! fará com que seu aplicativo trave se a chamada de lançamento falhar. Todos os três têm sua utilidade, então não descarte nenhum imediatamente.
Explique if let e guard let
se vira ai
Como você explicaria closures para um novo desenvolvedor Swift?
Abordagem sugerida: São fáceis no início, mas certifique-se de falar sobre a captura de valores, listas de captura (unowned vs weak) e por que elas são realmente úteis em comparação com outras abordagens. É possível que seu entrevistador esteja procurando uma discussão mais ampla sobre funções como tipos de primeira classe em Swift, então, se eles parecem estar esperando que você continue, esse pode ser um bom ângulo para abordar.
What is the difference between weak and unowned?
Suggested approach: As well as explaining that weak becomes a regular optional whereas unowned is an implicitly unwrapped optional, be prepared to discuss the safety differences. Do you have a preference? If so, why? Can you think of places where unowned must be used?
Qual é a diferença entre escaping closure e a non-escaping closure?
Abordagem sugerida: Esta é uma questão de linguagem avançada e se resume a uma coisa: se você passar uma closure como parâmetro de função e essa closure puder ser chamado após o retorno da função (por exemplo, após um delay), ele deverá ser marcado como escaping.
Para ganhar pontos extras, fale sobre por que o Swift usa non-escaping closure por padrão - eles removem um pequeno impacto no desempenho causado pela necessidade do Swift de manter escaping closures vivos na memória após a conclusão da função.
Qual é a diferença entre self e Self
Abordagem sugerida: Quase todo desenvolvedor Swift usa self regularmente, mas a questão aqui requer distinguir entre isso e a versão em maiúscula. Comece com self, que se refere ao objeto atual em que seu código está sendo executado, depois passe para Self, que se refere ao tipo atual em que seu código está sendo executado. Você pode se lembrar disso olhando para a letra maiúscula: nomeamos nossos tipos usando uma primeira letra maiúscula, então Self se refere a um tipo.