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

回收网站建设企业所得税怎么征收2021

回收网站建设,企业所得税怎么征收2021,做网站每年包多少流量,蚌埠企业网站建设套餐6.3 字符串数据类型 ​ Object Pascal 中的字符串数据类型比简单的字符数组复杂得多#xff0c;其功能远远超出了大多数编程语言为类似数据类型提供的功能。在本节中#xff0c;我将介绍这种数据类型背后的关键概念#xff1b;在接下来的章节中#xff0c;我们将更详细地探…6.3 字符串数据类型 ​ Object Pascal 中的字符串数据类型比简单的字符数组复杂得多其功能远远超出了大多数编程语言为类似数据类型提供的功能。在本节中我将介绍这种数据类型背后的关键概念在接下来的章节中我们将更详细地探讨其中的一些特性。 ​ 在以下要点中我总结了理解语言中字符串工作原理的关键概念请记住即使不了解这些概念您也可以使用字符串因为字符串的内部行为是非常透明的 字符串类型的数据在堆上动态分配。字符串变量只是对实际数据的引用。不必过多担心这一点因为编译器会透明处理这个问题。与动态数组一样当声明新字符串时该字符串是空的。尽管可以以多种方式向字符串分配数据但还可以通过调用SetLength函数来分配特定数量的内存。参数是字符串应该能够容纳的字符数每个2字节。扩展字符串时现有数据将被保留但可能会被移动到新的物理内存位置。而缩小字符串时部分内容可能会丢失。很少有必要设置字符串的长度。唯一常见的情况是需要将字符串缓冲区传递给指定平台的操作系统函数。。如果要增加字符串在内存中的大小通过与另一个字符串连接但相邻内存中有其他内容则字符串不能在相同的内存位置中增长因此必须在另一个位置制作字符串的完整副本。要清除字符串不要对引用本身进行操作只需将其设置为空字符串即’ 或者可以使用相对应的Empty常量。根据Object Pascal的规则字符串的长度可以通过调用Length获得是有效元素的数量而不是分配的元素的数量。与C不同C具有字符串终止符#0的概念从早期开始所有版本的 Pascal 都倾向于使用特定的内存区域字符串的一部分来存储实际的长度信息。不过有时你会发现字符串也有结束符。Object Pascal 字符串使用引用计数机制该机制会记录有多少个字符串变量在内存中引用给定的字符串。当字符串不再被使用时即不再有字符串变量引用数据且引用计数为零时引用计数将释放内存。字符串使用写时复制技术非常高效。当将字符串赋值给另一个字符串或将其传递给例程的字符串参数时不会复制数据并且引用计数会增加。但是如果更改其中一个引用的内容系统将首先制作副本然后仅修改该副本其他引用保持不变。使用字符串连接向现有字符串添加内容的速度通常非常快而且没有明显的缺点。虽然还有其他方法但字符串连接既快速又强大。这在当今许多编程语言中并非如此。 ​ 我想这样的描述可能会让人有点困惑所以让我们来看看字符串在实际中的使用。稍后我将通过一个演示来展示上述的一些操作包括引用计数和写时复制。不过在此之前让我先回到字符串辅助操作和其他一些管理字符串的基本 RTL 函数上来。 ​ 首先让我们根据实际代码测验一下前面列表中的结论。由于字符串操作非常完美除非您开始查看字符串的内存结构在本书的较晚部分我会这样做因为这在目前的阶段过于高级否则很难完全理解发生了什么。因此让我们从 Strings101 示例中提取的一些简单字符串操作开始 varString1, String2: string; beginString1 : Hello world;String2 : String1;Show(1: String1);Show(2: String2);String2 : String2 , again;Show(1: String1);Show(2: String2); end;当执行此第一个代码段时如果将两个字符串赋值相同的内容修改其中一个不会影响另一个。也就是说String1不受对String2的更改的影响 1: Hello world 2: Hello world 1: Hello world 2: Hello world, again不过在后面的演示中我们会更好地了解到初始赋值并不会导致字符串的完全复制复制是延迟的这种特性被称为写时复制copy-on-write。 ​ 另一个需要了解的重要特性是如何管理长度。如果询问字符串的长度就会得到实际值实际值存储在字符串元数据中因此操作速度非常快。但如果调用 SetLength则需要分配内存而内存通常不会被初始化。这通常用于将字符串作为缓冲区传递给外部系统函数。 ​ 如果需要一个空字符串可以使用伪构造函数Create。最后您可以使用SetLength修剪字符串。以下代码演示了所有这些情况 varString1: string; beginString1 : Hello world;Show(String1);Show(Length: String1.Length.ToString);SetLength(String1, 100);Show(String1);Show(Length: String1.Length.ToString);String1 : Hello world;Show(String1);Show(Length: String1.Length.ToString);String1 : String1 string.Create( , 100);SetLength(String1, 100);Show(String1);Show(Length: String1.Length.ToString); end;输出大致如下 Hello world Length: 11 ֐~ֳ~ו~׵~؛~ف~٦~ڋ~گ~ۓ~~Helloworld~̆~~̫ ͌~ʹ~Η~υ~ϧ~Ј~Щ~ы~ѭ~ҏ~ұ~Ә~Ӽ~ԟ~Շ~հ ~〈~⌇~۵~ܚ~ܼ~ݡ~~ރ~ޤ~ߊ~߰~֐~֐~֐~֐~ࢮ~ ~֐~ Length: 100 Hello world Length: 11 Hello world Length: 100​ 节要强调的第三个概念是空字符串。当字符串的内容是空字符串时它就是空字符串。无论是赋值还是测试都可以使用两个连续的引号或特定函数 varString1: string; beginString1 : Hello world;if String1 thenShow(Empty)elseShow(Not empty);String1 : ; // 或者 String1.Empty;if String1.IsEmpty thenShow(Empty)elseShow(Not empty); end;上述代码生成这个简单的输出 Not empty Empty6.3.1 传递字符串作为参数 ​ 正如我已经解释过的如果你将一个字符串赋值给另一个字符串你只是复制了一个引用而内存中的实际字符串并没有被复制。但是如果你编写的代码改变了该字符串那么字符串就会首先被复制仅在该点然后被修改。 ​ 将字符串作为参数传递给函数或过程时也会发生类似的情况。默认情况下你会获得一个新的引用如果你在函数中修改了字符串这并不会影响原始字符串。如果想获得不同的行为即在函数中修改原始字符串则需要使用 var 关键字通过引用传递字符串就像大多数其他简单数据类型和托管数据类型一样。 ​ 但如果不想修改作为参数传递的字符串呢在这种情况下可以对参数使用 const 修饰符进行优化。这样做意味着编译器不会让你在函数或过程中修改字符串但也会因此优化参数传递操作。事实上const 字符串不需要函数在开始时增加字符串引用计数也不需要在结束时减少字符串引用计数因为函数知道字符串不能被修改。 ​ 虽然字符串管理的例程非常快但执行数千或数百万次也会给程序增加一点开销。这就是为什么在函数不需要修改字符串参数值的情况下建议将字符串作为常量传递尽管下面的注释中提到了潜在存在的问题。 ​ 用编码术语来说这是三个以不同方式传递字符串参数的过程的声明 procedure ShowMsg1(Str: string); procedure ShowMsg2(var Str: string); procedure ShowMsg3(const Str: string);注解近年来除非函数和方法需要对字符串进行修改否则强烈所有字符串参数都应作为常量传递。但有一个非常重要的注意事项对于常量字符串参数编译器获取字符串引用后不会对其进行 “管理”不进行引用计数等而是将其视为指向内存位置的指针。编译器会正确检查例程的代码是否不会更改字符串参数。但是编译器无法控制参数所指向的原始字符串会发生什么变化。 ​ 对该字符串的更改会影响其内存布局和位置这一点普通字符串参数可以处理具有多个引用的字符串会自动执行写时复制操作而常量字符串参数则会受到这些更改的影响。换句话说对原始字符串的更改会使引用它的常量参数失效使用它很可能会导致内存访问错误。
http://www.hkea.cn/news/14256618/

相关文章:

  • 网站开发西安电商专业就业前景
  • 南昌做网站开发的公司有哪些网址大全123
  • logo制作软件免费版山东公司网站推广优化
  • wordpress博客增加音乐页面网站优化搜索
  • 做近代史纲要题的网站青海西宁制作网站专业
  • 成都建设网站价格怎么自己做网站卡扣
  • 社保门户网站建设方案网络营销的工作岗位
  • 合肥市建设工程市场价格信息网站网站做指向是什么意思
  • 网站优化及推广方案做贸易做个外贸网站有必要吗
  • 广西响应式网站哪家好上海广告公司薪资
  • asp.net 当前网站搜索引擎优化搜索优化
  • 设计类网站建设规划书仿百度百家模板wordpress主题
  • 卖水果做哪个网站好中国信用网官网查询入口
  • 建设网站申请哪个网站的理财频道做的比较好
  • 网站建设中是什么意思坂田做网站的公司
  • 保定网站制作方案公司官方网站建设费计入什么科目
  • 郑州做网站最好的公司双流区的规划建设局网站
  • 灵动网站建设企业网站建设比较好
  • 站长工具app官方下载公司怎么做网页网站
  • 广州做家教的网站如何做网站小编
  • 网站开发视频 百度云律师关键词推广
  • 云服务器是否可以做多个网站深圳建站的公司
  • 福州 网站备案阿里云linux服务器搭建wordpress
  • asp.net 网站管理系统整合营销案例
  • 张家口高新区做网站flashfxp上传网站
  • 手机网站模板演示外包做网站的要求怎么写
  • 加强网站信息内容建设的意见电子商务网站建设与综合实践
  • 企业网站的建设目标有哪几种做网站上哪买空间
  • 北京营销型网站餐饮营销策划方案
  • 企业的网站特点设计方案英文