Giả sử tôi có một hàm, dummy
, với 2 đối số. Các đối số có thể có các giá trị mặc định khi không được cung cấp trong cuộc gọi hàm. Nhưng làm thế nào để tôi biết là một đối số không được cung cấp?Làm thế nào để kiểm tra xem một đối số được cung cấp trong cuộc gọi chức năng?
Tôi biết tôi có thể sử dụng nargin
, như thế này
function dummy(arg1, arg2)
if nargin < 2
arg2 = 0;
end
if nargin < 1
arg1 = 0;
end
% function body
Tôi muốn biết liệu tôi có thể kiểm tra xem một đối số được cung cấp dựa trên tên lập luận? Một cái gì đó như supplied(arg2) == false
.
Tôi hỏi điều này bởi vì, đôi khi tôi muốn thêm đối số mới ở phía trước danh sách đối số (vì nó có thể không có giá trị mặc định), và sau đó tôi phải thay đổi tất cả if nargin ...
. Nếu tôi có thể kiểm tra theo tên, không có gì phải được thay đổi.
này là tốt hơn nhiều so với nargin, bởi vì bạn không cần phải thay đổi mã trong trường hợp bạn đã bao giờ thay đổi thứ tự của các tham số trong hàm. –
Tôi cũng thường thêm '... | isempty (arg1) ', vì vậy người dùng có thể bỏ qua' arg1', nhưng cung cấp 'arg2'. Tất nhiên nếu 'arg1' không thể trống. – yuk
Một cách phi thường, nhưng tôi nghĩ nó không thực sự trả lời câu hỏi. Dù sao, tôi chỉnh sửa câu trả lời, Ngoài ra tôi nghĩ rằng bạn phải sử dụng '||' (Short-Circuit Operator) để đảm bảo không có lỗi nếu 'arg1' không tồn tại. – Oli