我们假设我在R
中有一个类似于以下内容的闭包:
closure <- function(driver=system.file("java/driver.jar", package="fake"),
db_username=.getDb_username(),
db_password=.getDb_password(),
db_name=.getDb_name(),
tunnel="ssh command"){
system(tunnel)
drv <- JDBC("db.jdbc.Driver",
driver,
identifier.quote="`")
db_con <- dbConnect(drv, db_name, db_username, db_password)
runQuery <- function(sql_query, ...){
sql_query <- processQuery(sql_query, ...)
return(.dbRunQuery(db_con, sql_query, dbGetQuery))
}
return(runQuery)
}
然后我运行以下代码:
closure_return <- closure()
现在,我想从db_con
访问closure_return
。这可能吗?如果是这样的话?
请注意,我不想以任何方式更改closure
。如果更改closure
是唯一可行的方法,但请尝试提供不涉及更改closure
的答案。
如果您需要任何澄清或者我使用&#34;关闭&#34;这个词,请告诉我。不正确。
答案 0 :(得分:1)
我很傻。
在此处找到答案:http://adv-r.had.co.nz/Functional-programming.html#closures
还可以在?environment
找到更多信息。
我只需运行environment(closure_return)
并访问那里的变种。