怎么"为"在Scala工作?

时间:2018-04-27 05:02:45

标签: scala functional-programming scala-collections

我对scala编程完全陌生,并试图理解我们的架构师编写的函数(函数式编程)。我如何理解terraform apply -target digitalocean_droplet.server[0] -var instance_size=2gb循环?

for

2 个答案:

答案 0 :(得分:3)

写得很差。几乎从不推荐使用Object。在功能代码中不建议使用像ListBuffer这样的可变容器。有关每行的有用命名信息将被丢弃。我会写它像:

def bucketExists(row: Map[String, String]): Boolean = {
  val buckets = listS3Buckets(row("s3_access_key"), row("s3_secret_key")) getOrElse List.empty[Bucket]
  val bucketNames = buckets map {_.getName}
  bucketNames contains row("s3_primary_bkt_name")
}

def getExistingBuckets(rows: Vector[Map[String, String]]): Vector[Map[String, String]] = {
  val (exists, missing) = rows partition bucketExists
  missing foreach {row =>
    logger.info(s"WARNING: Provided S3 bucket ${row("s3_primary_bkt_name")} doesn't exist")
    logger.info(s"WARNING: Dropping the App: ${row("app")} from backup schedule")
  }
  exists
}

这使得您更清楚地记录有关不存在的存储桶的信息,并返回仅存在的存储桶列表。

答案 1 :(得分:0)

作为简历,迭代作为存储桶的S3对象并检查这些存储桶是否存在。为您提供一个记录器来检查并最终记录S3中没有的所有存储桶。