簡體   English   中英

tcltk R-如何訪問函數返回的值

[英]tcltk R - how to access value returned by function

我剛開始使用tcltkR 當調用第二個函數myFun2時,我myFun1通過名為myFun1的函數訪問計算值:

這是我的UI的簡化版本:

簡單的TCLTK界面

library(tcltk)
tt <- tktoplevel()
    topMenu <- tkmenu(tt)
    tkconfigure(tt, menu = topMenu)
    fileMenu <- tkmenu(topMenu, tearoff = FALSE)
        tkadd(fileMenu, "command", label = "Function1", command = myFun1)
        tkadd(fileMenu, "command", label = "Function2", command = myFun2)
        tkadd(topMenu, "cascade", label = "Tab", menu = fileMenu)
tkfocus(tt)

我的職能

myFun1 <- function() { 
    compVal <- 2*3
    compVal
}

myFun2 <- function() { 
    msg <- paste("The value is: \n", compVal )
    mbval<- tkmessageBox(title="This is the title",
                     message=msg,type="yesno",icon="question")
}

調用myFun1可以,但是myFun2返回

paste(“值是:\\ n”,compVal)中的錯誤:找不到對象'compVal'

同樣將compVal包裝到return(compVal)不起作用。 我也在考慮這樣做:

res <- list(compVal=compVal)

但是我無法使用myFun2訪問創建的列表。 關於如何訪問myFun1內部的myFun2返回值的myFun1 myFun2

我找到了一個解決方案,起初我認為它並不是真正的“干凈”方法,但是即使在官方文檔中也是如此。 只需使用<<-創建一個全局變量:

myFun1 <- function() { 
    compVal <<- 2*3
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM