养成良好的编程习惯,一定要给参数加上修饰符。

经过我写博客的总结: delphi 设计修饰符的目的 就是这样,就是想让你告诉编译器,参数是否会再函数内发生改变,或输出out。所以请养成习惯,不要省略。

1.无修饰符:

delphi会当成 unkown 来处理,这个时候 处理的很好,但是效率低(比如string等堆栈式存储的类型,他是会把指针复制一份入栈的,以防止你函数内部修改,因为一旦你函数内部修改了,为了避免影响原来调用此函数的函数内部的值跟着连带改变,所以他是把栈中的指针复制一份,若函数内部发生修改,就用这个新入栈的指针指向 新开辟的内存空间,这样不影响调用者内部的值发生连带改变。)可见delphi为了 开发者 设想的 很多啊,你少些了代码,delphi依然让你尽可能的不犯错,但是这是以牺牲效率为代价的。

2.const修饰符 

若参数再函数内部 不会发生改变,那么尽量多用这个,因为这个是直接把变量的指针自身传递过去,并没有把指针复制一份入栈,即没有任何新入栈的数据,所以效率高。包括 类的属性、记录的成员变量、接口等。

都是这个规则。

3.var 修饰符

若参数 无论是string 还是 object 还是 interface 只要参数 需要再函数内部发生改变,那么就要 使用var 。var 也是直接传变量自身,没有复制变量指针新入栈。且允许 函数内部修改。

4.out 修饰符

我猜测delphi发明这个修饰符的目的是 让函数 可以对外输出一个实例变量。function abc(a: string): tobject; 与 procedure abc(a: string; out b: tobject) 相比,或许用out 更能节省前台的代码。

即使不是为了节省前台的代码,那么一个函数 如果想输出一个实例变量 也又多了一种方式。更加灵活。所以 如上 你如果想输出b ,那么请你 不要对b进行初始化,因为即使你初始化了,b进入方法abc后

之前的初始化也会被洗刷掉,那么又为何初始化呢,既然是函数向外输出,那么又为什么,你又要初始化后再传入函数呢。

时间: 2024-10-17 08:01:23

养成良好的编程习惯,一定要给参数加上修饰符。的相关文章

要养成良好的编程习惯:就是要加上默认的父类无参的构造方法

Super()表示调用父类的构造方法. Super()也和this一样必须放在第一行. This()用于调用本类的构造方法. 如果没有定义构造方法,那么就会调用父类的无参构造方法,即super(). 要养成良好的编程习惯:就是要加上默认的父类无参的构造方法. 思考:可是如果我们没有定义无参的构造方法,而在程序中构造了有参的构造方法,那么如果方法中没有参数,那么系统还会调用有参的构造方法么?应该不会. 1 package TomText; 2 3 public class TomText_18 {

[.net 面向对象编程基础] (7) 基础中的基础——修饰符

[.net 面向对象编程基础] (7) 基础中的基础——修饰符 在进入C#面向对象核心之前,我们需要先对修饰符有所了解,其实我们在前面说到变量和常量的时候,已经使用了修饰符,并且说明了变量和常量的修改符. 首先 修饰符是什么? 修饰符用于限定类型以及类型成员的申明 从定义可以看出按功能分为两类:访问修饰符和声明修饰符 1.访问修饰符 (5个) 访问修饰符 说明 public 公有访问.不受任何限制. private 私有访问.只限于本类成员访问,子类,实例都不能访问. protected 保护访

如何养成良好的 C++ 编程习惯(一)—— 内存管理

开篇导读 “养成良好的编程习惯”其实是相当综合的一个命题,可以从多个角度.维度和层次进行论述和评判.如代码的风格.效率和可读性:模块设计的灵活性.可扩展性和耦合度等等.要试图把所有方面都阐述清楚必须花很多的精力,而且也不一定能阐述得全面.因此,本系列文章以软件开发的基础问题为切入点,阐述程序设计和代码编写方面的细节问题,以点带面,旨在激发大家的思考与总结,希望能为大家带来实际的帮助.     虽然本系列文章定位为科普读物,但本座相信它们不但适合新手们学习借鉴,同时也能引发老鸟们的反思与共鸣.欢迎

养成良好的C++编程习惯(准备持续更新)

? c++语言的灵活是建立在对编程者个人的编程素质的严格要求基础上的,好的C++编程习惯能避免很多问题. 没有好的编程习惯,极有可能编写一行代码,编译器能报十几个错误,而且就算编译通过了,将来在运行过程中也会有很多莫名奇妙的问题. ? 给字符串分配内存的时候,new char[]与 new char[size] 尽量用后者 下面这段代码在debug和releae模式下不出问题,但是生产环境下,有的时候不报错,有的时候报错报得能让你怀疑人生. 经验是:不要把c++想得太智能了,很多时候还是要编程者

如何养成良好的工作习惯和编码习惯

时间过得真快,看到空间中各种毕业照,突然意识到离校已经一年了,回顾这一年 生活上:积蓄没攒下,还欠了一屁股债,一直在温饱线上挣扎 工作上:基础比较薄弱,一年了没太大长进,工作方式没有条理性和系统性 一年了,一直在埋头向前走,到头来去发现一直在原地打转,是该停下来想一想了... 作为一名开发人员,技术水平是立足之本,如何提高技术水平,并体现在工作中成为了我的第一阶段目标 以下是一些想法,供自己参考 暴露的问题(前辈) (1)工作方式不成熟 (2)技术进步不大,基础比较薄弱 (3)自我认识不准确 自

养成一个SQL好习惯带来一笔大财富

我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我么还能保证下一段时间系统还能流畅的运行吗?那么还能保证下一个人能看懂我么的存储过程吗?那么我结合公司平时的培训和平时个人工作经验和大家分享一下,希望对大家有帮助. 要知道sql语句,我想我们有必要知道sqlserver查询分析器怎么执行我么sql语句的,我么很多人会看执行计划,或者用profile来监视和调优查询语句或者存储过程慢的原因,但是如果

c语言之良好的编程习惯(四)

1.在编写程序时,尽量减少内存的开销. 2.注释的内容要清楚明了,含义准确,防止二义性. 3.注释不要用缩写. 4.注释应与描述的代码相近,对代码的注释应放在代码的上方或右方. 5.编写程序使用缩进可以减少很多不必要的语法错误,同时也非常有利于调试. 6.在编辑实现一定功能的C语言程序时,首先要有一个清晰的思路,例如需要实现什么功能,关键是什么.语句流怎样控制.虽然不一定写出来,但至少心里有数. 7.养成边写边调试的习惯. 8.编译之前仔细检查是否有人为造成的编写错误,以免浪费时间. 9.在对运

小计良好的编程习惯(1)

本文记录了最近学习过程中,以及在编码过程中,感受到的比较好的编程习惯.如果有什么地方您觉得不妥,还请留言指出. 变量(普通变量和指针)的初始化. 解释:对于C/C++来说,声明的变量没有初始化,那么里面的值是有的(以前该内存的数值),所以对于自加自减的运算,在这里容易出错.而指针更是危险,声明的指针没有赋值的话,里面也是有值的,此时你不知道声明的指针指向哪里,等到你使用的时候,才会给指针赋值,那么在这期间,如果你使用了指针,修改了里面的东西,那就是无知的修改,是最可怕的.代码理解如下: #inc

养成良好的学习习惯-浅谈学习方法(1)

1.老男孩教育要培训什么? 思想技术 知识 2.养成良好的学习习惯和听课习惯 1)带一支笔和本,记录老师讲解的内容 2  总结时 ,记录关键的信息,抓重点 3) 听课习惯:调动所有感官学习 眼睛看.勤动手(记录和操作).勤思考 4)听课跟上进度 5)课上内容实践和老师保持高度 (软件技术.系统版本.配置路径)先跑通  再连通 二.学好Linux运维四要素 1.设定目标 例:哈佛大学四类人成就了四种不同的人生 给自己定一个目标, 2.掌握方法 1)最有效和最快的学习方法就是向有经验的人学习 2)和