【问题标题】:How to concat parameter of a function within a variable name如何在变量名中连接函数的参数
【发布时间】:2020-12-06 09:25:36
【问题描述】:

我可能没有正确地提出这个问题,但假设我想使用我传递给我的函数的任何参数的名称,以便在该函数中命名我的变量;

def myFunc(dfName: DataFrame): Unit = {
  
  val "{dfName}_concatenated" = dfName

}

所以如果我传入 myFunc(testDf) 里面的变量应该命名为testDf_concatenated

【问题讨论】:

  • 在变量名中使用变量不是一个好习惯。为此目的使用地图。
  • 我建议不要使用变量名作为一些参数,这会给你带来重构时的困难。为什么要使用它?
  • 您好,欢迎来到 SO!请阅读tourHow do I ask a good question?。另请阅读How to create a Minimal, Reproducible Example
  • 您希望在"{dfName}_concatenated" 找到什么?
  • 听起来您正在尝试用 Scala 编写 Python,因此这似乎是一个 XY 问题。 - 如果你解释你想要做什么,你试图解决的元问题是什么,而不是专注于你想到的这个特定的解决方案,那会更好。

标签: scala function apache-spark-sql parameter-passing


【解决方案1】:

值和变量必须在编译时命名,而您正在寻找的这个过程需要在运行时完成,所以您不能这样做,尝试使用简单的名称,值将是 @987654321 @。

【讨论】:

    【解决方案2】:

    我真的不确定你的问题是什么,这对你有用吗?

    def myFunc(dfName: String, anotherParam: Int): Unit = {
      val dfNameConcatenated = s"${dfName}_concatenated"
    }
    

    【讨论】:

    • 我想他/她想动态命名变量!喜欢:val $someNameInjectedAtRuntime = "SomeStringOrWhatever"
    猜你喜欢
    • 1970-01-01
    • 2016-11-25
    • 2021-12-09
    • 2016-01-01
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    相关资源
    最近更新 更多