scala - 如何访问 scala 对象中的嵌套函数
问题描述
我正在尝试访问嵌套函数。我可以访问 func1,但在尝试访问 func2 时遇到了问题。
//尝试调用不同类中的方法
val t1 = test
t1.func1()
t1.func1(df).func2("test")
object test {
def func1 (df: dataframe): tt = {
def func2 (ab: String): String = {
// do something
} else {
// do nothing
}
def func3 (ab2: String): String = {
//do something
} else {
// do nothing
}
}
val t1 = test
t1.func1()
t1.func1(df).func2("test")
我期待访问 func2 没有任何错误
解决方案
您可以将其视为func2
嵌套变量的等价物。您无法在其父函数之外访问它。
尝试更改一些内容以使此示例更加明显:
object test {
def func1 (df: dataframe): String = {
val data = "hi"
"bye"
}
}
val t1 = test
t1.func1(df).data
您希望能够访问data
这里吗?
如果您尝试对func2
外部进行引用func1
,您将收到编译器错误。
如果您需要访问func2
并且没有任何其他限制,我建议您在func1
.
推荐阅读
- javascript - 传递给 queryInterface.removeConstraint() 的选项对象的属性是什么?
- node.js - 如何在对话流实现中使用 OR 运算符
- kubernetes - redis/postgres 卷声明和应用程序配置之间的关系
- javascript - 如何在不询问位置的情况下工作天气
- c - 知道 Linux 如何确定应该在内核模块中打印哪个字符串吗?
- android - 如何在android中创建一个盒子阴影?
- delphi - 使用 Delphi XE 从 FTP 服务器下载目录
- visual-studio-code - 如何在代理后面打包 VS Code Extension
- c++ - 在 Lua C API 中使用自定义函数编辑内存
- jquery - 总是在按钮单击时返回 Post 400 Error jQuery