在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
(1)var修饰符 添加var 是地址传递,会修改原有的变量 var s: string; begin S := 'Hello'; ChangeSVar(s); ShowMessage(S); end; // ChangeSVar 定义 procedure TForm1.ChangeSVar(var A: string); begin A := A + 'World'; end; 以上会输出Hello World,因为是传址,修改的是原来的A (2)无任何修饰符 var s: string; begin S := 'Hello'; ChangeS(s); ShowMessage(S); end; // ChangeS定义 procedure TForm1.ChangeS(A: string); begin A := A + 'World'; end; 以上会输出Hello,因为方法ChangeS其实是创建了一个新的A,而输出的还是原来的A,值并没有改变 (3)out修饰符 var s: string; begin S := 'Hello'; ChangeSOut(s);// 此时S的值是'Hello,'而非'Hello,World'!,在过程Hello中的S的原始值被丢弃了 ShowMessage(S); end; // ChangeSOut定义 procedure TForm1.ChangeSOut(out A: string); begin A := A + 'World'; end; 以上会输出World,out仅仅接受返回的值,对out的任何输入都会被忽略。同时out传递给过程的实际参数不必进行初始化,比如对ChangeSOut的调用: Var Tmp: string; Begin ChangeSOut(Tmp);//编译也可以通过 End; (4)Const修饰符 Const修饰的参数传入之后不允许修改 如果在过程中修改参数会报错,比如: Procedure xxxx.TestConst(const A: String); Begin A := ’ss’; //企图修改const修改的参数,会报错 End; (1)var修饰符 添加var 是地址传递,会修改原有的变量 var s: string; begin S := 'Hello'; ChangeSVar(s); ShowMessage(S); end; // ChangeSVar 定义 procedure TForm1.ChangeSVar(var A: string); begin A := A + 'World'; end; 以上会输出Hello World,因为是传址,修改的是原来的A (2)无任何修饰符 var s: string; begin S := 'Hello'; ChangeS(s); ShowMessage(S); end; // ChangeS定义 procedure TForm1.ChangeS(A: string); begin A := A + 'World'; end; 以上会输出Hello,因为方法ChangeS其实是创建了一个新的A,而输出的还是原来的A,值并没有改变 (3)out修饰符 var s: string; begin S := 'Hello'; ChangeSOut(s);// 此时S的值是'Hello,'而非'Hello,World'!,在过程Hello中的S的原始值被丢弃了 ShowMessage(S); end; // ChangeSOut定义 procedure TForm1.ChangeSOut(out A: string); begin A := A + 'World'; end; 以上会输出World,out仅仅接受返回的值,对out的任何输入都会被忽略。同时out传递给过程的实际参数不必进行初始化,比如对ChangeSOut的调用: Var Tmp: string; Begin ChangeSOut(Tmp);//编译也可以通过 End; (4)Const修饰符 Const修饰的参数传入之后不允许修改 如果在过程中修改参数会报错,比如: Procedure xxxx.TestConst(const A: String); Begin A := ’ss’; //企图修改const修改的参数,会报错 End; |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论