FAQ: Functions - Omitting Argument Labels

This community-built FAQ covers the “Omitting Argument Labels” exercise from the lesson “Functions”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Learn Swift

FAQs on the exercise Omitting Argument Labels

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply (reply) below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!
You can also find further discussion and get answers to your questions over in #get-help.

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head to #get-help and #community:tips-and-resources. If you are wanting feedback or inspiration for a project, check out #project.

Looking for motivation to keep learning? Join our wider discussions in #community

Learn more about how to use this guide.

Found a bug? Report it online, or post in #community:Codecademy-Bug-Reporting

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

Forgive me, I think I am thinking too much. Can anyone explain to me as though I’m a child- on Omitting Argument Labels, we are learning about underscores in front of a parameter. This is what the lesson explains:

So far in this lesson, we’ve used parameter names in function calls thus using an _ and omitting a parameter name is entirely optional. Many developers prefer this syntax because it:

  1. Improves readability
  2. Avoids repetition in the function call
  3. Relates to how functions are called in various other programming languages

WHY do we write the parameter we use the underscore with if we are not calling it? Does it mean we CAN call or not call? If that’s the case, if there is NO underscore, does that mean we HAVE to call it? I’m super confused. I AM able to do the work, but I don’t get why.

Since I am asking… if you are an experienced coder, when do you feel as though you know enough you could actually take something and know fairly well how to implement? I love the way this is teaching it and the more times I reset and do-over, I am getting better and better, BUT if the lesson didn’t tell me what I needed, I would continue being that proverbial “deer in the headlights.”



1 Like

Suppose you define a function

func funcName(age:Int, year: Int) -> Void  {
  // function body

If you want to call this function, then you must include the argument labels e.g.

funcName(age: 20, year: 1965)

However, if you want to be able to call the function without having to include the argument labels, then you should modify the function definition to be

func funcName(_ age:Int, _ year: Int) -> Void  {
  // function body

This doesn’t mean that the parameters are optional. Only that the argument labels can be omitted i.e. this modification allows you to call the function thus:
funcName(20, 1965)

Even though we haven’t included any argument labels in our function call, the compiler can figure out that the first argument i.e. 20 should be assigned to the first parameter and the second argument i.e. 1965 to the second parameter of the function. Note: The compiler doesn’t know which integer argument is the age and which is the year. It just assigns the first integer argument to the first parameter and the second one to the second parameter. So if you made the function call
funcName(1965, 20)
the compiler would assign 1965 to age and 20 to year.