帕斯卡:random(); 之间有什么区别?和随机的;

发布于 2024-12-23 22:02:57 字数 201 浏览 3 评论 0 原文

无论我使用random还是random(),我“似乎”都会得到相同的结果。现在,对于具有 Python 背景的我来说,使用 random() 似乎更加自然和方便,但我已经看到过多次使用 random() 了。

这两个语句都不会使用 FPC 的适当标志产生提示或警告。

那么,有区别吗?如果有,区别是什么?

Whether I use random or random(), I 'seem' to get the same results. Now, coming from a Python background, using random() seems more natural and convenient to me, but I've seen random being used plenty a times.

Neither statements produce a hint or a warning using FPC's appropriate flags.

So, is there a difference, and if yes, what is it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

小ぇ时光︴ 2024-12-30 22:02:57

没有什么区别。 Pascal 在调用不带参数的函数时不需要括号。您可以使用它们来使代码在阅读时更加清晰,但它们完全是可选的。

There's no difference. Pascal doesn't require the parentheses when calling functions without parameters. You can use them to make your code more clear when reading it, but they're entirely optional.

仅此而已 2024-12-30 22:02:57

因为我看过一些 scala 代码,所以我在这里猜测。

random 和 random() 没有区别,如果函数不带参数,
您可以省略代码中的括号。

since i have seen a bit of scala code ,so here i am guessing.

There is a no difference between random and random(),If function takes no parameters,
you can omit parenthesis in the code.

梦里南柯 2024-12-30 22:02:57

区别在于合规性:

  • 在 ISO 标准 7185 和 10206 定义的 Pascal 中,无法显式突出显示无效例程。
    如果指定左括号 (,则后面必须至少有一个参数。

    <块引用>

    […] 如果过程或函数没有形式参数列表,则一定没有实际参数列表。 [...]

    凯瑟琳·詹森、尼克劳斯·沃斯:
    Pascal  – 用户手册和报告(第 4 版修订版)。
    第 187 页。
    DOI 10.1007/978-1-4612-4450-9
    ISBN 978-0-387-97649-5。

  • 在 Borland Delphi 中,空参数列表 () 仅用于文档目的(“嘿,这是一个例程”),但除此之外还有 没有区别
    不过,一旦您键入 ( .

此外,FreePascal 编译器使用括号

  • 来区分 function 激活和 function 返回值变量 <代码>函数定义
    函数 f:整数;
        开始
            {_赋值_给函数返回值变量}
            f := 42;
            { _call_ f,而不是读取返回变量的值 }
            x := f(); 
        结尾;
    

  • 强制执行程序变量的例行激活(而不是引用程序变量指向的内存地址)。
    {$modeSwitch classicProcVars+}
    函数f:指针;开始 f := nil 结束;
    类型pointerFunction = 函数:指针;
    var foo: 指针函数;
    
    开始
        foo := f;
    
        { _call_ `f` 并比较_返回_值 }
        如果 foo() = nil 那么
    
        { 比较_变量的_ 值,_不_ 调用 }
        如果 foo = nil 那么
    

The difference is compliance:

  • In Pascal as defined by ISO standards 7185 and 10206 a nullary routine cannot be explicitly highlighted.
    If you specify an opening parenthesis ( at least one parameter must follow.

    […] If the procedure or function has no formal parameter list, then there must be no actual parameter list. […]

    Kathleen Jensen, Niklaus Wirth:
    Pascal – user manual and report (4th revised ed.).
    p. 187.
    DOI 10.1007/978‑1‑4612‑4450‑9.
    ISBN 978‑0‑387‑97649‑5.

  • In Borland Delphi an empty parameter list () merely serves for documentation purposes (“hey, this is a routine”) but there is otherwise no difference.
    It may be convenient, though, that Delphi (the IDE) displays a drop‑down box containing a list of all overloads (routines bearing the same name but differing in parameter list) once you type the (.

Furthermore, the FreePascal Compiler uses parentheses

  • to distinguish a function activation and the function return value variable within a function definition
    function f: integer;
        begin
            { _assignment_ to function return value variable }
            f := 42;
            { _call_ f, instead of reading the return variable’s value }
            x := f(); 
        end;
    

    and

  • to enforce a routine activation of a procedural variable (instead of referring to the memory address the procedural variable points to).
    {$modeSwitch classicProcVars+}
    function f: pointer; begin f := nil end;
    type pointerFunction = function: pointer;
    var  foo: pointerFunction;
    
    begin
        foo := f;
    
        { _call_ `f` and compare the _returned_ value }
        if foo() = nil then
    
        { compare the _variable’s_ value, _no_ call }
        if foo = nil then
    
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文