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]")
:
- 。
- 。
- 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。
:
login(name: "bill")symbol key。login("name": "bill")symbol key(:"name")。
。
9.
- 。
- 。
- API 。
options = {}。
10.
- 。
- 。
- API 。
...。- 。
: 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。
Comments