¿Cuál es el significado de la marca '#' en lenguaje rápido?

He visto un código como este:

func hello(name: String, #helloMessage: String) -> String { 
    return "\(helloMessage), \(name)." 
} 

Mi pregunta es que# marca significa antes del nombre del parámetro? ¿Eso significa que el parámetro debe especificarse al llamar a una función?

Además, ¿alguien puede mostrarme una diferencia con la función sin esto?# ¿marca? Los ejemplos de código son más que bienvenidos.

Respuestas a la pregunta(5)

Su respuesta a la pregunta