Delphi 新语法:For in语句
据说Delphi 2005开始支持For in语句.并没有深入调查,依然从万一博客学习并整理.
一、遍历 TStrings
var
List: TStrings;
s: string;
begin
List := TStringList.Create;
List.CommaText := 'aaa,bbb,ccc';
for s in List do
ShowMessage(s);
List.Free;
end;
二、遍历数组
var
Arr: array[0..2] of Byte;
i: Integer;
b: Byte;
begin
for i := Low(Arr) to High(Arr) do
Arr[i] := Random(MAXBYTE);
for b in Arr do
ShowMessage(IntToStr(b));
end;
三、遍历子界
{例1}
var
sub: 0..9;
str: string;
begin
str := '';
for sub in [Low(sub)..High(sub)] do
str := str + IntToStr(sub);
ShowMessage(str); {0123456789}
end;
{例2}
type
TSub = 'A'..'G';
var
sub: TSub;
str: string;
begin
str := '';
for sub in [Low(sub)..High(sub)] do
str := str + sub;
ShowMessage(str); {ABCDEFG}
end;
{例3}
var
sub: Byte; {Byte 应该算是个 0..255 的子界}
num: Cardinal;
begin
num := 0;
for sub in [Low(sub)..High(sub)] do
Inc(num, sub);
ShowMessage(IntToStr(num)); {32640}
end;
四、遍历枚举
type
TEnum = (Red,Green,Blue);
var
enum: TEnum;
count: Integer;
begin
count := 0;
for enum in [Low(enum)..High(enum)] do
Inc(count);
ShowMessage(IntToStr(count)); {3}
end;
五、遍历集合
type
TEnum = (Red,Green,Blue,Yellow);
TSet = set of TEnum;
var
set1: set of TEnum;
set2: TSet;
elem: Tenum;
count: Integer;
begin
set1 := [Red, Yellow];
count := 0;
for elem in set1 do Inc(count);
ShowMessage(IntToStr(count)); {2}
set2 := [Red..Yellow];
count := 0;
for elem in set2 do Inc(count);
ShowMessage(IntToStr(count)); {4}
end;
六、遍历字符串
var
str: string;
c: Char;
begin
str := 'ABCD';
for c in str do
ShowMessage(c);
end;
Delphi 新语法:For in语句的更多相关文章
- 使用 C# 9.0 新语法提升 if 语句美感
C# 语言一贯秉承简洁优美的宗旨,每次升级都会带来一些语法糖,让我们可以使代码变得更简洁.本文分享两个使用 C# 9.0 提升 if 语句美感的技巧示例. 使用属性模式代替 IsNullOrEmpty ...
- delphi新语法之泛型实现的对象池模板
现在的DELPHI因为支持泛型的语法,所以也能支持模板编程了. // 标准模板 unit UntPools; interface uses Classes, SysUtils, Unt ...
- Delphi新语法 For ..In
首先我们要知道哪些类型可以用For In吧,下面就是: for Element in ArrayExpr do Stmt; 数组 for Element in StringExpr do S ...
- Delphi新语法
http://www.cnblogs.com/hnxxcxg/category/456344.html
- Delphi 7以来的Delphi 2009测试版新语法特性
我晕,Delphi 7 以后增加了这么多有用的语法,我都不知道.真是越学越觉得自己浅薄,自己所作的Delphi项目所用的知识还不够Delphi知识储备体系的十分之一,更别说Delphi还在继续发展. ...
- class helper 可能是从 Delphi 2007 增加的新语法
class helper 可能是从 Delphi 2007 增加的新语法, 因为感觉不太实用, 直到今天才测试了一下. 试过之后才知道: 挺有意思的! 基本功能就是修改已存在的类. Txxx = cl ...
- [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性
回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...
- .NET中那些所谓的新语法之一:自动属性、隐式类型、命名参数与自动初始化器
开篇:在日常的.NET开发学习中,我们往往会接触到一些较新的语法,它们相对以前的老语法相比,做了很多的改进,简化了很多繁杂的代码格式,也大大减少了我们这些菜鸟码农的代码量.但是,在开心欢乐之余,我们也 ...
- .NET中那些所谓的新语法之三:系统预定义委托与Lambda表达式
开篇:在上一篇中,我们了解了匿名类.匿名方法与扩展方法等所谓的新语法,这一篇我们继续征程,看看系统预定义委托(Action/Func/Predicate)和超爱的Lambda表达式.为了方便码农们,. ...
- .NET中那些所谓的新语法之四:标准查询运算符与LINQ
开篇:在上一篇中,我们了解了预定义委托与Lambda表达式等所谓的新语法,这一篇我们继续征程,看看标准查询运算符和LINQ.标准查询运算符是定义在System.Linq.Enumerable类中的50 ...
随机推荐
- SpringBoot 整合Thymeleaf 、Thymeleaf常用标签
springboot 整合Thymeleaf Thymeleaf是目前流行的视图层的技术,Spring boot 官方推荐的使用Thymeleaf 什么是Thymeleaf? Thymeleaf是一个 ...
- 在react项目如何捕获错误
在React项目是如何捕获错误的? 一.是什么 错误在我们日常编写代码是非常常见的 举个例子,在react项目中去编写组件内JavaScript代码错误会导致 React 的内部状态被破坏,导致整个应 ...
- python爬虫学习——文件操作,异常处理
文件操作 ''' f = open("a.txt","w") #打开一个文件, w模式(写),如果文件不存在就在当前目录下创建 f.write("he ...
- C语言排序 冒泡 选择 快排
冒泡排序 冒泡排序是一种简单的排序算法,其基本思想是重复地交换相邻两个元素,将较大的元素向右"冒泡",较小的元素向左"沉淀",从而将序列中的最大元素逐渐移到最后 ...
- computed与watch的区别
1.computed表示的是计算属性,watch指的是监听属性,监听的值变化时执行回调函数 2.computed会使用缓存,而watch不使用缓存,每次监听都执行回调 3.computed需要retu ...
- WPF Xaml标签的一些特殊符号 如何输入
小于号 < 输入 < 注意有分号 大于号 > 输入 > 符号 & 输入 & 引号 " 输入 "
- Git提交代码报错husky > pre-commit,
拉取了新项目以后,git突然不能用了 报husky > pre-commit, 解决办法:进入你的项目显示隐藏git文件 进入git文件 找到 hooks / pre-commit ...
- Educational Codeforces Round 138 (Rated for Div. 2) - D. Counting Arrays
数论 + 计数 Problem - D - Codeforces 题意 给定整数 \(n\;(1<=n<=3e5),\;m\;(1<=m<=1e12)\) 要求求长度为 \(n ...
- CF1768F 题解
题意 传送门 给定长度为 \(n\) 的序列 \(a\),求序列 \(f\),满足: \[f_i= \begin{equation} \begin{cases} 0&(i=1)\\ \min\ ...
- grafana嵌入iframe,websoket连接报错400或403(nginx代理)
1.custom.ini配置文件修改allowed_origins=* 2. nginx中增加配置,如下: