DEV Community


Posted on


Using colon to specify that a method is a keyword argument

The colon (:) is used to specify that a method or function parameter is a keyword argument. Keyword arguments allow you to pass arguments to a method or function using the argument name, rather than just the position of the argument.

For example, consider the following method definition:
def greet(name:, age:)
puts "Hello, #{name}. You are #{age} years old."

This method has two keyword arguments: name and age. When you call this method, you can use the argument names to specify the values for each argument:
greet(name: "John", age: 30) -> Output: "Hello, John. You are 30 years old."

If you omit the colons when defining the method, Ruby will treat the arguments as regular, non-keyword arguments. This means that you will need to pass the arguments in the correct order, based on their position. For example:
def greet(name, age)
puts "Hello, #{name}. You are #{age} years old."

greet("John", 30) -> Output: "Hello, John. You are 30 years old."

In this case, you can see that the name and age arguments are treated as regular, non-keyword arguments. You have to pass the arguments in the correct order (name first, age second) when calling the method.

Using keyword arguments can make your code easier to read and maintain, because it is clear which argument goes with which parameter. However, they are not always necessary, and you can choose to use regular, non-keyword arguments if you prefer.

Top comments (2)

webjose profile image
José Pablo Ramírez Vargas


  1. Mention the programming language this is about.
  2. Use code blocks, or in general, learn Markdown.
  3. Use a more descriptive title, ideally more than one word.
  4. Add hashtags to your post.

Good luck!

citronbrick profile image

Hi, to enable syntax highlighting in code blocks in you can use,
(triple backtick) (name of language)

Timeless DEV post...

Git Concepts I Wish I Knew Years Ago

The most used technology by developers is not Javascript.

It's not Python or HTML.

It hardly even gets mentioned in interviews or listed as a pre-requisite for jobs.

I'm talking about Git and version control of course.

One does not simply learn git