gpt4 book ai didi

r - 为什么在函数定义中接受符号字符?

转载 作者:行者123 更新时间:2023-12-03 16:49:04 25 4
gpt4 key购买 nike

由于打字错误,我发现此代码有效[注意重复的 -在第二行]

foo <- function()
-------------------------
{
1
}

调用 foo()返回 -1 .数量 -确定返回值是正数还是负数[奇数返回负数]。

我没有找到关于这个 R 函数定义的任何信息,所以我现在问为什么允许这样做以及这样做的目的是什么。

连官方 R documentation根本没有提到这个。任何的想法?

注释: invisible(1)不起作用。开头 { 前有符号字符时不抑制输出.

最佳答案

你已经被 R 的函数体语法规则的奇怪限制绊倒了。
syntax of functions in R允许在参数列表之后的任何表达式,通常 R 函数提供一个由 {} 包围的表达式列表.这有时在其他语言中称为“块”。在 R 中,块的“评估值”是块中最后一个表达式的评估值。

  • -1是一个有效的表达式,那么 -{1}也是一个有效的表达式。
  • -也是一元否定运算符,它在 R 中是可重复的。因此:
    1 = 1
    -1 != -1
    --1 == 1
    ----1 == 1
    -----1 == -1
    所以评价如下:
    foo <- function() ------------------------- {1}
    foo <- function() ------------------------- 1
    foo <- function() -1
    由于 R 的语法规则,您可以轻松地:
    foo <- function() -1

    关于r - 为什么在函数定义中接受符号字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61529601/

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