当前位置: 首页 > news >正文

国外网站怎么建设设计师如何注册个人网站

国外网站怎么建设,设计师如何注册个人网站,建设网站准备资料,房产律师网站模板嵌套函数的定义嵌套函数#xff0c;即nested function#xff0c;就是嵌套在函数体内部的函数。嵌套函数可以出现在一个函数体内部的任何位置#xff0c;开始以function声明#xff0c;结束的时候加上end。需要说明的是包含有嵌套函数的函数#xff0c;无论它是主函数、子…嵌套函数的定义嵌套函数即nested function就是嵌套在函数体内部的函数。嵌套函数可以出现在一个函数体内部的任何位置开始以function声明结束的时候加上end。需要说明的是包含有嵌套函数的函数无论它是主函数、子函数、嵌套函数都应该在末尾的地方加上end。下面的代码是一个简单的嵌套函数的例子例1function rMyTestNestedFun(input)a5;csin(input)tan(input);function ynestedfun(b)ya*cb;endrnestedfun(5);end rMyTestNestedFun(6)r 2.1479结果是这样得到的调用MyTestNestedFun后程序依次执行a5;csin(input)tan(input)然后又调用nestedfun这个嵌套函数此时b5,而嵌套函数所在的函数中的a,c对嵌套函数是可见的。ra*cb5*(-0.5704)52.1479嵌套函数种类嵌套函数可以分为单重嵌套函数和多重嵌套函数。先说单重嵌套函数这样的函数嵌套在别的函数体内自己内部不再有嵌套的函数。如上例示例。一个函数里可以有一个或者多个单重嵌套函数。多重嵌套函数这样的函数嵌套在别的函数体内同时自己内部又嵌套着别的另一层或几层函数。同样一个函数里可以有一个或者多个多重嵌套函数。如下例2function xA(p1,p2)...function y1B1(p3)...function z1C1(p4)...end...end...function y2B2(p5)...function z2C2(p6)_...function wD(p7)...endendendend该函数A(p1,p2)内部有两个嵌套函数分别B1(p3)和B2(p5)而B1(p3)和B2(p5)分别是二重和三重嵌套函数。嵌套函数的变量作用域例1function rNestedFunctionVarScopeDemo(a)ba1;function Nested1cb1;function Nested11dca;endNested11;endNested1rd;end运行上面的代码譬如rNestedFunctionVarScopeDemo(1)r 4上述代码有一个二重嵌套函数Nested1,它内部还包含一个嵌套函数Nested11,整个函数的执行过程如下传入变量a1,计算b的值b2遇到Nested1的函数定义往下是调用Nested1的语句进入Nested1之后先计算c的值即c等于b13。从这里可以看到在嵌套函数体内可以访问主函数之内的变量。“cb1;”这条语句之后是定义Nested11的函数语句定义Nested11结束后是调用Nested11的函数语句。从Nested11的定义来看这个函数非常简单仅仅做的是计算dca;从这里可以看出在第二重嵌套函数里分别访问了Nested1里的变量c和主函数里的变量a。主函数最后一句是从外部访问了第二重嵌套函数里的变量d并将d赋给r以此作为主函数的返回值。从上面这个嵌套函数的示例可以看出主函数和嵌套在其内的函数它们各自的变量是可以互相访问的。但是必须要注意的是嵌套函数访问主函数的变量可以在函数定义里直接拿过来用而主函数访问嵌套在其内的函数里的变量则必须要经过调用之后才能用。譬如上例主函数访问Nested11里的d是经过在主函数里调用Nested1而在Nested1里又调用Nested11后才成功的否则是不行的。例2function rNestedFunctionVarScopeDemo2(a)ba1;function Nested1cb1;c110;function Nested11dca;endendNested1ec1rd;end运行得到如下结果rNestedFunctionVarScopeDemo2(1)e 10未定义函数或变量 d。出错 NestedFunctionVarScopeDemo2 (line 12)rd;在调用NestedFunctionVarScopeDemo2时候发生了错误。从提示来看是没有定义变量“d”。这是因为调用Nested1后执行了Nested1里的语句但是Nested1中只是定义了Nested11,而并没有调用它的语句。因此外界不能访问d。这就是为什么ec1;可以成功而rd;报错的原因了。上面讨论了嵌套函数和主函数之间变量互相访问的情况(包括主函数也是嵌套函数的情况)。那么不同的嵌套函数之间呢如下例例3function rNestedFunctionVarScopeDemo3(a)ba1;function Nested1cb1;c110;Nested2;c2d^2;endfunction Nested2d2*b;endNested1rc2end该函数里面包含两个嵌套函数都是单重的一个是Nested1,一个是Nested2。本例是想验证是否直接从Nested1中通过调用Nested2来访问其中的变量。经过运行得到下面的结果 rNestedFunctionVarScopeDemo3(1)未定义函数或变量 d。出错 NestedFunctionVarScopeDemo3/Nested1 (line 7)c2d^2;出错 NestedFunctionVarScopeDemo3 (line 12)Nested1从错误提示来看出错原因是访问变量“d”不成功“d”未定义所以彼此没有嵌套关系的嵌套函数是不能简单得共享变量的如果非要共享只能通过他们所在的主函数来进行。嵌套函数彼此调用关系主函数和嵌套函数之间这里的主函数包括最上层的主函数即不嵌套在任何函数里的函数以及本身是嵌套函数但同时内部还嵌套有其他函数的函数。因为这些函数相对嵌套在内的函数来说也是主函数。这样的情形下调用关系遵循下面的原则主函数可以调用嵌套在其中的第一重嵌套函数而不能调用第二重或者更深重的嵌套函数无论第几重嵌套函数都可以调用主函数或者主函数的主函数等等如下例function rNestedFunctionCallDemo1(a)ba1;function c1Nested1(x)cb1;c110c*x;function dNested11dca;endendc1Nested1(1);rNested11;end本例呈现的是主函数调用子函数的例子。又上例可以看出。在主函数NestedFunctionCallDemo1中分别对Nested1和Nested11进行了调用。运行结果如下rNestedFunctionCallDemo1(1)c1 13未定义函数或变量 Nested11。出错 NestedFunctionCallDemo1 (line 11)rNested11;从结果来看调用Nested1成功而调用Nested11没有成功。这验证了主函数可以调用嵌套在其中的第一重嵌套函数而不能调用第二重或者更深重的嵌套函数下例为嵌套函数调用主函数的例子function NestedFunctionCallDemo2(flag)switch flagcase 1disp(flag1);return;case 2disp(flag2);NestedFun1case 3disp(flag3);returnotherwisedisp([flag,num2str(flag)]);returnendfunction NestedFun1NestedFunctionCallDemo2(1);NestedFun2function NestedFun2 NestedFunctionCallDemo2(3)endendend运行上述代码得到下面结果 NestedFunctionCallDemo2(2)flag2flag1flag3当flag2时执行的是NestedFun1,而在NestedFun1中调用了主函数这时候flag1;因此此时显示“flag1”,接下来在NestedFun1中对NestedFun2进行了调用。而NestedFun2对最外层的主函数来说是一个二重嵌套函数同样它也调用了NestedFunctionCallDemo2,只不过flag3因此显示“flag3”。从上例可以看出嵌套函数对主函数的调用是可以的。不同的嵌套函数之间这里讨论的不用嵌套函数之间指的是嵌套深度相同或者不同彼此之间没有嵌套与被嵌套关系的不同的嵌套函数。譬如位于第一层的不同嵌套函数之间以及位于第二层的不同嵌套函数之间等等。如下例嵌套函数调用示例1function NestedFunctionCallDemo3Nested1(5)function Nested1(x)disp([Nested1 执行输入,num2str(x)]);Nested2(6)function Nested11(xx)disp([Nested11 执行输入,num2str(xx)]);endendfunction Nested2(y)disp([Nested2 执行输入,num2str(yy)]);function Nested22(yy)disp([Nested22 执行输入,num2str(yy)]);endendend运行结果如下Nested1 执行输入5Nested2 执行输入6从上面结果来看Nested1执行后成功调用Nested2这说明第一层的嵌套函数之间是可以互相调用的。嵌套函数调用示例2function NestedFunctionCallDemo4Nested1(5)function Nested1(x)disp([Nested1 执行输入,num2str(x)])Nested11(6)function Nested11(xx)disp([Nested11 执行输入,num2str(xx)])Nested2(pi)Nested22(10);endendfunction Nested2(y)disp([Nested2 执行输入,num2str(y)])Nested22(pi*pi)function Nested22(yy)disp([Nested22 执行输入,num2str(yy)])endendend运行代码得到 NestedFunctionCallDemo4Nested1 执行输入5Nested11 执行输入6Nested2 执行输入3.1416Nested22 执行输入9.8696未定义函数或变量 Nested22。出错 NestedFunctionCallDemo4/Nested1/Nested11(line 9)Nested22(10);出错 NestedFunctionCallDemo4/Nested1 (line 5)Nested11(6)出错 NestedFunctionCallDemo4 (line 2)Nested1(5)从上面的执行情况可以看出函数Nested11成功被调用而且Nested11再调用Nested2时也成功了通过Nested2,间接调用了Nested22但是从Nested11中直接调用Nested22却没有成功。说明第二重调用可以调用不包含它的第一重嵌套函数。嵌套函数调用3function NestedFunctionCallDemo5Nested1(5)function Nested1(x)disp([Nested1 执行输入,num2str(x)])Nested11(6)function Nested11(xx)disp([Nested11 执行输入,num2str(xx)])Nested111(pi)function Nested111(xxx)disp([Nested111 执行输入,num2str(xxx)]);Nested2(exp(1))Nested22(100)endendendfunction Nested2(y)disp([Nested2 执行输入,num2str(y)])Nested22(pi*pi)function Nested22(yy)disp([Nested22 执行输入,num2str(yy)])endendend运行代码结果为Nested1 执行输入5Nested11 执行输入6Nested111 执行输入3.1416Nested2 执行输入2.7183Nested22 执行输入9.8696未定义函数或变量 Nested22。出错NestedFunctionCallDemo5/Nested1/Nested11/Nested111(line 12)Nested22(100)出错 NestedFunctionCallDemo5/Nested1/Nested11(line 8)Nested111(pi)出错 NestedFunctionCallDemo5/Nested1 (line 5)Nested11(6)出错 NestedFunctionCallDemo5 (line 2)Nested1(5)从上面的执行情况可以看出函数Nested1执行后函数Nested11成功被调用而且Nested11在调用Nested111Nested111在调用Nested2时也成功了;通过Nested2,Nested111间接调用了Nested22,但是从Nested111直接调用Nested22却没有成功。这说明第三重嵌套函数不可以调用不包含它的第二重嵌套函数。嵌套函数调用关系总结为了方便理解。可以将上述调用情况进行类比具体如下将主函数看成“父亲”嵌套函数依据嵌套深度可以看成“儿子”“孙子”“重孙子”等等。父亲可以求助儿子儿子可以求助父亲。即父子可以互相求助。一个人不能求助孙子重孙等后代但是可以求助自己的祖宗(祖父、曾祖父等等)。一个人可以求助自己亲兄弟或者叔叔、伯伯但不能求助侄儿
http://www.pierceye.com/news/94187/

相关文章:

  • 傻瓜建站家庭网络搭建网站
  • 扬中做网站的公司静态网页生成器
  • 襄阳做公司网站的软件公司wordpress网站好做排名吗
  • 电商网站功能介绍太原市做网站公司
  • 网站开发融资计划网站响应式和电脑手机
  • 专做水果的网站天门市规划建设局网站
  • 网站百度地图生成器建设一个网站可以做什么
  • 用阳寿做交易的网站建盏公司简介
  • 机械加工网站哪个好服装设计专业有前途吗
  • 深圳 企业 网站建设哪家好没有域名的网站需要备案吗
  • 深圳返利网站建设扁平化 手机网站首页
  • 郑州核酸点推vip服务网站优化标准
  • 建设银行河南分行网站邢台做网站哪里便宜
  • 网站收录原创文章wordpress新框架vue
  • 中工信融做网站怎么样凡科建站代理平台
  • 网站设计图能用ps做么dedecms 图片网站
  • 自己有服务器怎么做网站wordpress会员卡
  • 网站打不开 ...wordpress 评论表情插件
  • 网站开发框架 Wordpress网站整体设计流程
  • 深圳沙井网站建设网站建设管理工作
  • 网站广告条效果wordpress改关键词
  • 做移动网站首页软截获网站流量怎么做
  • 用dw做网站怎么添加背景图片大连网页制作培训
  • 新网站百度有审核期成都 网站建设培训班
  • 在线购物网站的设计成都网站seo费用
  • 访问国外的网站很慢wordpress 电商主题
  • 免费收录网站推广wordpress打开速度分析
  • 成都网站运营wordpress后台
  • 班级建设网站wordpress获取分类的文章
  • 北京建设官方网站常州做网站那家快