(delphi11最新学习资料) Object Pascal 学习笔记---第6章第3节(字符串连接)

6.3.3 字符串连接

​ 我已经提到过,与其他语言不同,Object Pascal 完全支持直接字符串连接,这实际上是一个相当快的操作。在本章中,我将向您展示一些字符串连接代码和一些速度测试。稍后,在第 18 章中,我将简要介绍 TStringBuilder 类,该类遵循 .NET 表示法,用于从不同片段组合字符串。虽然使用 TStringBuilder 是有原因的,但性能并不是最相关的原因(如以下示例所示)。

​ 那么,在Object Pascal中如何连接字符串?我们通过使用+运算符来实现:

varStr1, Str2: string;
beginStr1 := 'Hello,';Str2 := 'world';Str1 := Str1 + ' ' + Str2;

​ 请注意,我在赋值的左右两侧都使用了Str1变量,向现有字符串添加更多的内容,而不是赋值给全新的字符串。两种操作都是可以的,但向现有字符串添加内容是可以获得更好的良好性能。

​ 这种类型的连接也可以在循环中完成,如从LargeString示例中提取的以下代码:

usesSystem.Diagnostics;constMaxLoop = 2_000_000; // 两百万varStr1, Str2: string;I: Integer;T1: TStopwatch;beginStr1 := 'Marco ';Str2 := 'Cantu ';T1 := TStopwatch.StartNew;for I := 1 to MaxLoop doStr1 := Str1 + Str2;T1.Stop;Show('Length: ' + Str1.Length.ToString);Show('Concatenation: ' + T1.ElapsedMilliseconds.ToString);
end;

通过运行此代码,在Windows虚拟机和Android设备上(计算机要快得多)获得以下计时:

Windows虚拟机上:

Length: 12000006
Concatenation: 59

Android设备上:

Length: 12000006
Concatenation: 991

​ 示例还包含使用TStringBuilder类的类似代码。虽然我不想详细说明该代码(我将在第18章中描述该类),但我想分享实际的计时,与刚刚显示的普通连接计时进行比较。

Windows虚拟机上:

Length: 12000006
StringBuilder: 79

Android设备上:

Length: 12000006
StringBuilder: 1057

正如您所看到的,连接可以安全地被认为是最快的选项。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/713581.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十五天-爬虫项目实战

目录 1.介绍 2.代码 1.main.py 2.PageSider.py 3.DetailSpider.py 4.DataParse.py 5.Constant.py 6.HanderRequest.py 1.介绍 1. 使用多线程爬取网站 2.爬取数据后保存至excel 3.爬取网站(仅做测试)网创类项目爬取:https://www.maomp.com/ 4..实现效果 …

python66-Python的循环之常用工具函数

使用zip()函数可以把两个列表“压缩”成一个zip对象(可迭代对象),这样就可以使用一个循环并行遍历两个列表。为了测试 zip()函数的功能,我们可以先在交互式解释器中“试验”一下该函数的功能。 # !/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2024/01# @Author : …

元数据优化:提升您的网站在搜索引擎中的表现

前言 在之前的文章中,我们探讨了如何通过超链接来提高用户在网站的使用体验。本篇将聚焦于元数据的优化,揭示它如何成为提升网站曝光率和点击率的秘密武器。 一、介绍 元数据,或称之为数据的数据,在网页开发中占据着不可忽视的角…

IPD MM流程之业务策略工具:安索夫矩阵

IPD市场管理流程,华为内部称为“MM流程”(Market Management,MM)。华为市场管理是通过对市场和细分市场的分析,制定细分市场的策略,形成商业计划,把商业计划落实在日常工作当中。MM流程其中一个…

git根据文件改动将文件自动添加到缓冲区

你需要修改以下脚本中的 use_cca: false 部分 #!/bin/bash# 获取所有已修改但未暂存的文件 files$(git diff --name-only)for file in $files; do# 检查文件中是否存在"use_cca: false"if grep -q "use_cca: false" "$file"; thenecho "Ad…

3.1线程作业

1.要求定义一个全局变量char buf"1234567",创建两个线程,不考虑退出条件。 a.A线程循环打印buf字符串, b.B线程循环倒置buf字符串,即buf中本来存储1234567,倒置后buf中存储7654321.B线程中不打印!! c.倒置…

qt5-入门-使用拖动方式创建Dialog

参考: C GUI Programming with Qt 4, Second Edition 本地环境: win10专业版,64位,Qt5.12 目录 实现效果基本流程逐步实操1)创建和初始化子部件2)把子部件放进布局中3)设置tab顺序4&#xff09…

jstat命令查看jvm的GC信息

文章目录 前言jstat命令查看jvm的GC信息1. 概述2. 应用堆内存水位阀值大小怎么确定3. 使用 jps 命令查看 Java 进程的进程号(PID)![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5097401443314e9d808a83b694dbc6e5.png)4. jstat用法5. 类加载…

UE4 Niagara 关卡3.1官方案例解析二

自己尝试做做,打乱顺序 1、新建空的niagara system,添加空的发射器。更换渲染器为网格体渲染器并添加网格体。 2、发射器更新里面添加Spawn Rate,发射个粒子看看 效果图: 3、采样静态网格体,网格体粒子出生于静态网格…

【排序算法】基数排序

一:基本概念 1.1 基数排序(桶排序)介绍 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是…

【图说】电脑发展史

免责声明:文中有一些图片来源自网络,如有版权请通知我删除,谢谢! “结绳记事”是计算的开端 如果说“结绳记事”仅是计数,那么“算筹”就是真正的计算工具 算盘也是我们老祖宗的杰出发明,最擅长“加减乘除”,包括但不限于乘方、开方、对数等。还能进行开发智力的“珠心算…

鼠标失灵怎么办?电脑出现鼠标失灵的详细处理方法介绍

无论是笔记本电脑还是台式机电脑,鼠标是必不可少的外设之一,而我们在使用电脑的过程中,经常回遇到鼠标突然失灵了,不听使唤,控制不了,接下小编来与大家一起分享,遇到这种情况我们该怎么办 有时…

C语言学习笔记(二)

C语言学习 学习笔记(一) 学习笔记(二) 文章目录 C语言学习一、C语言中的数据类型进制二进制八进制十六进制进制转换表 单位换算寻址 数据类型基本类型整数类型整数的有符号和无符号实数类型字符型 构造类型指针类型空类型总结 常量直接常量符号常量转义符 符号常量…

Python并发编程:多线程-GIL全局解释器锁

一 引子 在Cpython解释器中,同一个进程下开启的多线程,同一时刻只能有一个线程执行,无法利用多核优势首先:需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比c是一套…

协议(网络协议)

HTTP/HTTPS 协议 HTTP 实际上是个缩写,英文全称是:Hyper Text Transfer Protocol (超文本传输协议)。 最常用的网页(也叫web页)就是一种超文本的具体表现形式。HTTPS (全称:Hyper …

美团-放水果

题目: 放水果 把M个相同的水果放在N个同样的盘子里,允许有的盘子空着不放,问不同的放法数K是多少?请注意,5,1,1和1,5,1 是同一种放法。输入描述 第一行是测试数据的数目…

【Spring】19 @Autowired注解使用详解

文章目录 构造函数注入Setter方法注入字段注入数组和集合注入特殊情况处理特殊接口类型的注入异常处理结语 Spring 框架的 Autowired 注解是实现依赖注入的一种强大而灵活的方式。在本文中,我们将介绍 Autowired 注解的多种用法,包括构造函数、setter方法…

ICASSP2024 | ICMC-ASR 车载多通道语音识别挑战赛总结

为促进驾驶场景中语音处理和识别研究,在ISCSLP 2022上成功举办智能驾驶座舱语音识别挑战 (ICSRC)的基础上,西工大音频语音与语言处理研究组 (ASLPNPU)联合理想汽车、希尔贝壳、WeNet社区、字节、微软、天津大学、南洋理工大学以及中国信息通信研究院等多…

EMO在哪体验?阿里对口型视频生成工具EMO下载地址?阿里巴巴新模型EMO的技术原理

这几天,阿里的对口型视频生成工具EMO火了。根据官方宣传,EMO只需要上传一张图片和一段音频就可以一键生成对口型视频,而且视频中的嘴型还可以与声音匹配。这项技术支持多语言、对话、唱歌以及快速语速的适配,但也可能成为制造虚假…

pip降级在pycharm中

PyCharm依赖于"–build-dir"参数安装第三方库,但该参数在最新的23.0版pip中已删除 解决办法就是降级pip,PyCharm中选择File,找到编译器,点击pip,勾选对应版本即可 或者在cmd中执行运行python -m pip install…