Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

373
Visualizações
Swift: la cadena comienza (con:) vs hasPrefix

String.hasPrefix (o [NSString hasPrefix] ) siempre fue parte de Foundation . Sin embargo, acabo de darme cuenta de que ahora también tenemos starts(with:) .

Este método proviene de Sequence pero también funciona para String .

Mi pregunta es, ¿cuál debo preferir? ¿Hay alguna consideración de rendimiento? Estoy acostumbrado a hasPrefix desde los días de Objective-C, pero starts(with:) es más intuitivo y funciona para otras secuencias.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

String.hasPrefix() se implementa en StringLegacy.swift como

 extension String { public func hasPrefix(_ prefix: String) -> Bool { if _fastPath(self._guts.isNFCFastUTF8 && prefix._guts.isNFCFastUTF8) { guard prefix._guts.count <= self._guts.count else { return false } return prefix._guts.withFastUTF8 { nfcPrefix in let prefixEnd = nfcPrefix.count return self._guts.withFastUTF8(range: 0..<prefixEnd) { nfcSlicedSelf in return _binaryCompare(nfcSlicedSelf, nfcPrefix) == 0 } } } return starts(with: prefix) } }

lo que significa (si lo entiendo correctamente): si tanto la cadena como el prefijo candidato usan un almacenamiento basado en UTF-8, entonces los bytes UTF-8 se comparan directamente. De lo contrario, vuelve a starts(with:) y realiza una comparación basada en Character .

Por lo tanto, no hay diferencia en el resultado, pero hasPrefix() está optimizado para cadenas Swift nativas.

Nota: Esta es la rama principal (Swift 5), la situación puede ser diferente en versiones anteriores.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda