【问题标题】:Deciding number of parameter to pass to a method "dynamically"决定“动态”传递给方法的参数数量
【发布时间】:2020-10-08 14:49:17
【问题描述】:

在对方法的调用中,我只想在参数存在时才传递参数。在我对该方法的调用下方:

    val bindingFuture =
    Http().bindAndHandle(
      endPoints,
      host,
      port,
      if (myParameter.isDefined) myParameter.get else //nothing
    )

我的问题是,如果参数不存在,我只想将三个参数传递给方法,而忽略第四个。我想在调用方法中进行此评估。我该怎么做?

【问题讨论】:

    标签: scala methods parameters


    【解决方案1】:

    这里有几个选择:

    您可以在调用方法之前对选项模式匹配来决定调用两个版本中的哪一个。

    myParameter match {
      case Some(param) =>
        val bindingFuture =
          Http().bindAndHandle(
            endPoints,
            host,
            port,
            param
          )
    
      case None =>
        val bindingFuture =
          Http().bindAndHandle(
            endPoints,
            host,
            port
          )
    }
    

    另一种选择是查看该方法是否支持null (如果这是一个Java lib,则很有可能),因此您可以这样做:

    val bindingFuture =
      Http().bindAndHandle(
        endPoints,
        host,
        port,
        myParameter.orNull
      )
    

    最后,我会制作自己的包装器,它接受隐藏样板的选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-08
      • 2020-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 2014-03-08
      • 1970-01-01
      相关资源
      最近更新 更多