通过学习R
,我刚刚发现了下面这段代码的解释在这里。
open.account <- function(total) {
list(
deposit = function(amount) {
if(amount <= 0)
stop("Deposits must be positive!\n")
total <<- total + amount
cat(amount, "deposited. Your balance is", total, "\n\n")
},
withdraw = function(amount) {
if(amount > total)
stop("You don't have that much money!\n")
total <<- total - amount
cat(amount, "withdrawn. Your balance is", total, "\n\n")
},
balance = function() {
cat("Your balance is", total, "\n\n")
}
)
}
ross <- open.account(100)
robert <- open.account(200)
ross$withdraw(30)
ross$balance()
robert$balance()
ross$deposit(50)
ross$balance()
ross$withdraw(500)
这段代码最让我感兴趣的是学习如何使用"$"
美元符号,它指代了open.account()
函数中的一个具体的内部函数
。我的意思是这部分代码:
ross$withdraw(30)
ross$balance()
robert$balance()
ross$deposit(50)
ross$balance()
ross$withdraw(500)
问题:
1- 在 R
的 function()
中,美元符号 "$"
的含义是什么?
2- 如何在函数中识别其属性,特别是对于从其他地方采用的函数(即你没有编写该函数)?
我使用了以下脚本
> grep("$", open.account())
[1] 1 2 3
但这并不实用,我希望找到一种方法来提取可以通过"$"调用和引用的内部函数的名称,而不仅仅是通过调用和搜索代码如> open.account()
。例如,在open.account()
的情况下,我想看到类似于以下内容:
$deposit
$withdraw
$balance
3- 有没有更多关于此的参考资料可供阅读?
谢谢!