読んだ。非常に面白かった。
ラストのどんでん返しがスゴイ小説 - NAVER まとめを見て買ったのだけど、確かに最終的な伏線回収は面白かった。けれど、伏線回収の部分よりも、途中の心理描写とか、うまく後が気になるような書き方になっているとかが良かった。小説読んでて気づいたら一時間位経ってたみたいな経験は良い。
読んだ。非常に面白かった。
ラストのどんでん返しがスゴイ小説 - NAVER まとめを見て買ったのだけど、確かに最終的な伏線回収は面白かった。けれど、伏線回収の部分よりも、途中の心理描写とか、うまく後が気になるような書き方になっているとかが良かった。小説読んでて気づいたら一時間位経ってたみたいな経験は良い。
なんか%%とか%とかよく分からなかったので少し追いかけた。
groupID % artifactID % revisionという形式でlibraryDependenciesに追加することで、依存ライブラリを追加でき、sbtでビルドした時にダウンロードされる。
さらに以下のような書き方もできる。
libraryDependencies += "org.scala-tools" %% "scala-stm" % "0.3"
この場合、利用しているscalaのバージョンを加味して、該当するScalaのバイナリバージョンに対してコンパイルされたものをダウンロードしてくれる。つまり%%はちょっと賢い%と思っておけば良い。
https://github.com/sbt/sbt/blob/0.13/ivy/src/main/scala/sbt/impl/DependencyBuilders.scala#L27..L52 あたりにある。
まだあんまり読めないけど、libraryDependenciesに追加しようとした時に、最初の文字列がGroupIDクラスに変換され、そこに定義された%によってGroupArtifactIDが作成され、最終的に次の%でModuleIDが作成されるということみたい。
libraryDependenciesの定義はKeys.scalaあたりにあって
val libraryDependencies = SettingKey[Seq[ModuleID]]("library-dependencies", "Declares managed dependencies.", APlusSetting)
となっているので、ModuleIDのシーケンスを入れておくと依存を追加できるということっぽい。
あんまり奥深くまでは追いかけてないし、まだ読めないので正確ではないけど、軽く追いかけてみた。なんでStringから突然GroupIDのメソッドが呼べるのかとかよく分かってないので、もうちょっとScala勉強したい。