Trong MATLAB, bạn có thể có nhiều hàm trong một tệp .m
. Tất nhiên có chức năng chính, và sau đó là nested or local functions.Có nhiều chức năng trong một tệp .m được lồng hoặc cục bộ khi "kết thúc" không được sử dụng
Ví dụ về từng loại chức năng:
% myfunc.m with local function ------------------------------------------
function myfunc()
disp(mylocalfunc());
end
function output = mylocalfunc()
% local function, no visibility of variables local to myfunc()
output = 'hello world';
end
% -----------------------------------------------------------------------
% myfunc.m with nested function -----------------------------------------
function myfunc()
disp(mynestedfunc());
function output = mynestedfunc()
% nested function, has visibility of variables local to myfunc()
output = 'hello world';
end
end
% ----------------------------------------------------------------------
Sự khác biệt là rõ ràng khi bạn sử dụng end
báo cáo của các chức năng. Tuy nhiên, tôi không nghĩ rằng đó là tài liệu rõ ràng mà bạn đang sử dụng khi bạn không, vì đây là cú pháp hợp lệ:
% myfunc.m with some other function
function myfunc()
disp(myotherfunc());
function output = myotherfunc()
% It's not immediately clear whether this is nested or local!
output = 'hello world';
Có bất kỳ định nghĩa rõ ràng về việc liệu các chức năng bằng văn bản như myotherfunc
là địa phương hoặc lồng nhau?