我看到这个代码在使用播放框架使用创建对象并产生
val credentials : Option[(ConsumerKey, RequestToken)] = for {
apiKey <- Play.configuration.getString("twitter.apiKey")
apiSecret <- Play.configuration.getString("twitter.apiSecret")
token <- Play.configuration.getString("twitter.token")
tokenSecret <- Play.configuration.getString("twitter.token")
} yield (
ConsumerKey(apiKey, apiSecret),
RequestToken(token, tokenSecret)
)
的应用程序,我不知道如果我的理解使用循环只是创建选项的原因[(ConsumerKey,RequestToken) ]对象。为什么会选择使用“for循环”来做到这一点?
为什么不是这样?
val apiKey = Play.configuration.getString("twitter.apiKey")
val apiSecret = Play.configuration.getString("twitter.apiSecret")
val token = Play.configuration.getString("twitter.token")
val tokenSecret = Play.configuration.getString("twitter.token")
val tuple: (ConsumerKey, RequestToken) = (ConsumerKey(apiKey.get, apiSecret.get), RequestToken(token.get, tokenSecret.get))
val credentials2 : Option[(ConsumerKey, RequestToken)] = Option(tuple)
“压缩”不适用于循环 – cchantep
@cchantep我认为它的理解和它是一个循环。看到这个https://alvinalexander.com/scala/scala-for-comprehension-syntax-for-yield-loop-examples – Programmer
'for'是一元组合,而不是循环(这只是一个特定的情况)。首先看看网络教程 – cchantep