Skip to main content

Ruby Method Arguments: Positional, Keyword, and Variable Arguments

Published: April 24, 2026 Updated: June 18, 2026 Larry Qu 2 min read

Ruby API 。,:

Ruby 3 。

1. (Positional Arguments)

def add(a, b)
  a + b
end

add(1, 2) # => 3

,。

2.

def connect(host, port = 5432)
  "#{host}:#{port}"
end

connect("db.local") # => "db.local:5432"

,。

3. *args

*args

def sum(*args)
  args.sum
end

sum(1, 2, 3) # => 6

、、DSL。

4. (Keyword Arguments)

,。

def create_user(name:, email:, admin: false)
  { name: name, email: email, admin: admin }
end

create_user(name: "Lin", email: "[email protected]")

  1. API。

5. **kwargs

def log_event(event:, **meta)
  { event: event, meta: meta }
end

log_event(event: "login", user_id: 10, ip: "127.0.0.1")

6.

def point((x, y))
  x * y
end

point([3, 4]) # => 12

(Ruby 2.7+)

def wrapper(...)
  target(...)
end

7. Hash

Hash 。Ruby 3 Hash 。

def f(opts)
  opts
end

f(a: 1) # Hash
def g(a:)
  a
end

g(a: 1) # keyword

Ruby 2 Ruby 3 ,。

8. Symbol Key String Key

h1 = { name: "bill" }      # symbol key
h2 = { "name" => "bill" } # string key

key。

  1. login(name: "bill") symbol key。
  2. login("name": "bill") symbol key(:"name")。

9.

  1. API 。
  2. options = {}

10.

  1. API 。
  2. ...

: API

def send_email(to:, subject:, body:, retry_count: 3, timeout: 5)
  # send logic
end

send_email(
  to: "[email protected]",
  subject: "Build Status",
  body: "All green",
  timeout: 10
)

,。

Ruby ,。,, *args/**kwargs ,、、 Ruby API。

Resources

Comments

👍 Was this article helpful?