我对scala编程完全陌生,并试图理解我们的架构师编写的函数(函数式编程)。我如何理解terraform apply -target digitalocean_droplet.server[0] -var instance_size=2gb
循环?
for
答案 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中没有的所有存储桶。