在下面的代碼中,放置query
對象(在循環內部還是外部)的位置是否重要?爲了便於閱讀,我更喜歡這個第一版:斯卡拉優化這個代碼嗎?
class MyClass {
db withSession {
names.foreach { name =>
val query = MyEntity.createFinderBy(_.name) <----------
query.list(text).foreach(res =>
doSomething
}
}
}
}
但是這不是第二版更好嗎?
class MyClass {
db withSession {
val query = MyEntity.createFinderBy(_.name) <----------
names.foreach { name =>
query.list(text).foreach(res =>
doSomething
}
}
}
}
甚至?
class MyClass {
val query = MyEntity.createFinderBy(_.name) <----------
db withSession {
names.foreach { name =>
query.list(text).foreach(res =>
doSomething
}
}
}
}
在Java中,我把它放在一個靜態的最終場在班上名列前茅......
爲什麼你會發現第一個更具可讀性?最後的版本更直接地表達了查詢不依賴於會話或循環中發生的任何事情的信息。即使其他人被優化了,我也會親自選擇它(它們可能不是)。 –
我更喜歡1st,因爲查詢在使用時更接近。但我明白你的觀點,並喜歡它。 – Renaud