Theo như tôi có thể nói, các hàm Swift có các tham số chưa đặt tên theo mặc định, nhưng các phương thức Swift không (trừ tham số đầu tiên). Ví dụ, đưa ra định nghĩa sau đây:Nhiều tham số chưa đặt tên trong các phương thức Swift
func foo(a: Int, b: Int) -> Int {
return a + b
}
class MyClass {
func bar(a: Int, b: Int) -> Int {
return a + b
}
}
tôi phải gọi foo
với các thông số không tên:
foo(10, 20) // fine
foo(a: 10, 20) // error
foo(10, b: 20) // error
foo(a: 10, b: 20) // error
và tôi phải gọi bar
với đối số đầu tiên vô danh, và đối số thứ hai có tên là:
MyClass().bar(10, b: 20) // fine
MyClass().bar(10, 20) // error
MyClass().bar(a: 10, b: 20) // error
MyClass().bar(a: 10, 20) // error
Tôi hiểu rằng tôi có thể thực hiện bất kỳ thông số chưa đặt tên nào có tên bằng cách sử dụng ký hiệu #
, nhưng câu hỏi của tôi là: có cách nào để tôi có thể đặt cả hai đối số thành bar
chưa được đặt tên?
Nói cách khác, Tôi muốn tuyên bố bar
theo cách như vậy mà tôi có thể gọi nó như một chức năng bình thường:
MyClass().bar(10, 20)
Đây có phải là có thể trong Swift? Nếu vậy, làm thế nào?
Cảm ơn bạn! Đó chỉ là những gì tôi cần. – SelectricSimian
Lưu ý: Trong Swift 4, bạn phải đặt '_' trước đối số đầu tiên. class MyClass { func bar (a: Int, _ b: Int) -> Int { trở lại a + b }} var g = MyClass() g.bar (3, 4) lỗi: repl .swift: 88: 7: error: thiếu nhãn đối số 'a' trong cuộc gọi –