我看到這個代碼在使用播放框架使用創建對象併產生
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