gpt4 book ai didi

delphi - Delphi 中的无类型/无类型参数

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

像 TStringStream 类中那样没有类型的参数是什么类型:

function Read(var Buffer; Count: Longint): Longint; override;

Buffer参数的类型是什么(是Pointer类型吗?)。

最佳答案

几年前我写了一篇关于这个主题的文章:

What is an untyped parameter?

无类型参数在少数情况下使用;您询问的 TStream.Read 方法与我写的 Move 过程最匹配。以下是摘录:

procedure Move(const Source; var Dest; Count: Integer);

The Move procedure copies data from an arbitrary variable into any other variable. It needs to accept sources and destinations of all types, which means it cannot require any single type. The procedure does not modify the value of the variable passed for Source, so that parameter’s declaration uses const instead of var, which is the more common modifier for untyped parameters.

对于TStream.Read,源是流的内容,因此您不需要将其作为参数传递,但目标是Buffer问题中显示的参数。您可以为该参数传递您想要的任何变量类型,但这意味着您需要小心。确保流的内容确实是您提供的参数类型的有效值是您的工作,而不是编译器的工作。

阅读我文章的其余部分,了解 Delphi 使用非类型化参数的更多情况。

关于delphi - Delphi 中的无类型/无类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1928463/

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