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

396
Visualizações
¿Cuál es el significado de : en las firmas de funciones Swift y por qué no hay una coma cuando parece que debería haber una?

Aquí hay un ejemplo de lo que estoy hablando: https://developer.apple.com/documentation/foundation/nsmutableorderedset/1410287-insert

La función de inserción se muestra como insert(_:at:)

Cuando se usa realmente, la función de inserción se parece más a:

namesArray.insert("John", at: 3)

No hay : después de "John" (aunque supongo que podría ser "John":String -- ¿para eso está ahí?), y el , que en realidad necesita ir allí, no se menciona en la firma de la función en la documentación. ¿Se supone que debo saber/asumir que la coma va allí cuando realmente la uso? ¿Es este el caso para todas las funciones de Swift?

Tenga en cuenta que esta no es una pregunta sobre el guión bajo, _ -- Entiendo por qué está ahí y para qué sirve. Estoy preguntando específicamente sobre las razones para incluir : y no incluir , en la firma de la función.

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

0

La convención, que se ve con frecuencia en la documentación, es una forma concisa de referirse a una función, utilizando solo el nombre de la función y las etiquetas de los argumentos.

Así que considere esta declaración de función:

 func insert(_ objects: [Any], at indexes: IndexSet)

Este es

  • un método llamado insert ;
  • el nombre del primer parámetro se llama objects , este parámetro no tiene etiqueta de argumento (designado con _ ) y tiene un tipo de [Any] ; y
  • el segundo nombre del parámetro es indexes , su etiqueta de argumento está at y tiene un tipo de IndexSet .

Entonces lo llamas así:

 insert(someObjects, at: someIndex)

Cuando lo llama, no le importa cuáles son los nombres de los parámetros que se usan dentro de esa función, sino cuáles son las etiquetas de los argumentos. Por lo tanto, la convención al referirse a ese método en la documentación es omitir los nombres y tipos de parámetros y simplemente usar el nombre de la función y las etiquetas de los argumentos, pero sin coma:

 insert(_:at:)

Tenga en cuenta que nunca usaría esta sintaxis en su código. Esta es solo una convención de documentación empleada para destilar declaraciones de funciones largas en algo más manejable y conciso:

transición

Para obtener más información sobre etiquetas de argumentos y nombres de parámetros, consulte Etiquetas de argumentos de funciones y nombres de parámetros

over 4 years ago · Santiago Trujillo Relatório

0

R : en la función, la firma siempre significa un argumento de entrada para la función. La firma de la función contiene la etiqueta del argumento seguida de : . El _ significa que no hay una etiqueta de argumento, en cuyo caso también puede omitir el : al proporcionar ese argumento de entrada específico a la llamada de función.

Esto es exactamente lo que ve con la función insert(_:at:) . Le proporciona dos argumentos de entrada, "John" y 3 , pero solo necesita una etiqueta de argumento para el segundo argumento de entrada, por lo tanto, solo necesita uno : . También es importante tener en cuenta que, en el momento de la llamada, separa los argumentos de entrada usando , , no : .

over 4 years ago · Santiago Trujillo Relatório

0

Las funciones Swift tienen una forma única de especificar la firma, que es un patrón de transferencia de Objective C. Hay 3 partes para especificar cada argumento de entrada a la firma de la función. La firma para la función que mencionaste es la siguiente:

 func insert(_ objects: [Any], at indexes: IndexSet)

Veamos primero el segundo argumento:

  1. at indica la etiqueta del argumento , que es cómo la persona que llama especifica el parámetro.
  2. indexes indica el nombre del parámetro de la función al objeto. Esto significa que en el cuerpo de la función, todo lo que se haya pasado como at: se denominará indexes .
  3. IndexSet es el tipo del argumento.

La parte 1 también puede ser algo además de un nombre:

  • si no se especifica, el nombre del argumento y la etiqueta del parámetro son los mismos. Por ejemplo, si la firma fuera func insert(objects: [Any], indexes: IndexSet) , la función se llamaría como o.insert(objects: ['a','b'], at: [1,2]) .
  • Si es un guión bajo ( _ ), entonces el argumento no tiene etiqueta para la persona que llama. Esto permite que la persona que llama use la llamada más simple e intuitiva o.insert(['a','b'], at: [1,2]) .
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