gpt4 book ai didi

delphi - 正确的 'in' 运算符用法

转载 作者:行者123 更新时间:2023-12-03 14:40:33 25 4
gpt4 key购买 nike

考虑以下过程

procedure InTests;
var
N, K: Integer;

begin
N:= 1111;
if N in [6, 8, 10] // this is correct, readable and effective code
then ShowMessage('OK');

K:= 11;
if N in [6, 8, 10, K] // this is correct but less effective
then ShowMessage('OK'); // (compiler creates local 16-bytes set var)

K:= 1111;
if N in [6, 8, 10, K] // this is a bug (K > 255)
then ShowMessage('OK');
end;

in 运算符代替 if

  if (N = 6) or (N = 8) or (N = 10)
then ShowMessage('OK');

使代码更加紧凑和可读,但 Delphi 文档对此没有提及,您应该意识到潜在的问题。

问题是:例如,in 运算符是否应该仅在括号中使用常量

  if N in [6, 8, 10]
then ShowMessage('OK');

被认为是 Delphi 中的良好实践吗?

最佳答案

这绝对是一个很好的做法。它使代码更具可读性,并且消除了对逻辑运算符、括号等的需要。我总是会使用 in 进行这样的测试。

唯一的缺点是 Delphi 对 sets 的支持非常有限。 (基本序数类型的值不得超过 256 个)。但是,如果您不受这些限制的约束,那么您应该毫不犹豫地使用 in

关于delphi - 正确的 'in' 运算符用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9052240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com