本書の PROLOGUE から引用する「本書はそんな Java は習得し使いこなせているけれども、 Scala をこれから習得しようとされているデベロッパの方に向けて基礎からわかりやすく解説しています。」
わたしは Java を知らないので、残念ながら著者が求めている読者像から外れる。 それはともかく、誤植が多いのが残念である。また、英語のスペリングミスと思われるものもあるので、 それも掲げた。
正誤の違いで強調したい字を赤字で掲げた。
ページ | 場所 | 誤 | 正 | 備考 |
---|---|---|---|---|
59 | ◇要素の順次処理コレクション、上から5行目 | 各要素にインデックス与えて | 各要素にインデックスを与えて | |
62 | 〇名前付き引数のコード例、上から3行目 | 初期値が与えれられています。 | 初期値が与えられています。 | |
67 | 〇数値リテラル、上から2行目 | 64 ビット整数(符合付) | 64 ビット整数(符号付) | |
105 | ◇Option クラス型の戻り値による処理の分岐、上から2行目 | Option クラス型はパターンマッチングと組み合わせて使うとを効果的であり、 | Option クラス型はパターンマッチングと組み合わせて使うと効果的であり、 | |
106 | (各所) | パターマッチング | パターンマッチング | |
136 | (各所) | プライン | プラグイン | |
138 | 〇システム開発における Java と Scala の相互運用の必要性、下から2行目 | JavaBean | JavaBeans | |
142-145 | 全体 | Factorial | Power | コードも整合性を持たせて直すべき |
156 | 「tupled」メソッドのコード例 | weatheToyama | weatherToyama | クラス名 Weather や変数 weatherTupled には末尾の r がある。プログラム実行時の影響はない |
178 | 〇定数パターンのコード例、上から1行目 | パターンマッチグ | パターンマッチング | |
180-181 | (各所) | somthing | something | プログラム実行時の影響はない |
181 | ◇変数パターンの記述、上から2行目 | パターマッチング | パターンマッチング | |
183 | COLUMN 束縛とは何か、上から1行目 | またはバイント | またはバインド | |
192 | 〇タプルパターンの記述方法、下から3行目、1行目 | パターマッチング | パターンマッチング | |
194 | コンストラクタパターンのコード例、上から4行目 | employeeMumber | employeeNumber | 従業員数の意味と解釈した。プログラム実行時の影響はない |
195 | コンストラクタパターンのコード例、p.194 上から6行目、 p.195 下から2~4行目 | outBpInfomation | outBpInformation | 外部ビジネスパートナー情報の意味と解釈した。プログラム実行時の影響はない |
197 | 〇抽出子パターンとは、下から3行目 | 抽出子パターンよる | 抽出子パターンによる | |
201 | (各所) | Oder, showOder | Order, showOrder | プログラム実行時の影響はない |
209 | (各所) | 年4桁、月2桁、日4桁 | 年4桁、月2桁、日2桁 | |
209 | (各所) | 年4桁/月2桁/日4桁 | 年4桁/月2桁/日2桁 | |
209 | ◇正規表現オブジェクト定数の定義(下段側)、下から3行目 | raw 補完子 | raw 補間子 | 補間子は英語では interpolator |
246 | 〇DI コンテナと AOP、下から2行目 | Java の言語使用では | Java の言語仕様では | |
277-278 | コード例ほか | firstName、showFirstName | lastName、showLastName | 苗字(姓)を表示するのであれば、FirstName ではなく、LastName であろう。 |
pp.142 では、プログラムは明らかにべき乗(冪乗)の計算であるのに、名称に Factorial という別の計算を当ててしまっている。factorial は階乗という意味である。べき乗は英語で power なので、 オブジェクト名には Power を当てるべきだ。オブジェクト Power のメンバーには既に power という変数があるが、 先頭を大文字にしてあるので区別できる。
いい機会なので書き直してみたが、書き直した結果でも警告が出る。
$ scala -deprecation Power.scala Power.scala:4: warning: method + in class Double is deprecated (since 2.13.0): Adding a number and a String is deprecated. Use the string interpolation `s"$num$str"` return power + "乗 = " ^ 7 の 5.0乗 = 16807.0
この警告も出ないように書き変えた p.144 のコードは次のとおり。 なお、ファイル名も Factorial.scala から Power.scala に変えている。
object Power{
val power: Double = 5
def sayMessage(): String = {
return s"${power}乗 = "
}
}
class Power{
private var baseNum: Double = 0
def setBaseNum( num: Double ): Unit = {
baseNum = num
}
def calcPower(): Double = {
return Math.pow( baseNum, Power.power )
}
}
object Main extends App {
print( "7 の " + Power.sayMessage() )
var pow = new Power()
pow.setBaseNum( 7 )
println( pow.calcPower() )
}
pp. 277-278 の例では、(L|l)astName の代わりに (F|f)amilyName もいいだろう。
ソースコードで、println( s"苗字(姓)は $firstNameです)
と表示していることでもあるし、ここはクラス名やメソッド名にもlastName を使うべきだろう。
なお、他の個所のソースコード、たとえば、 p.152 や p.168、p.199 では、
firstName を正しく(下の)名前として使っている。しかし、
苗字のほうは p.152 では secondName を当てているのに対し、
p.168 や p.199 では lastName を当てていて、統一されていない。
secondName は意味があいまいなので、苗字は lastName に統一すべきだろう。
書名 | 基礎からわかる Scala |
著者 | 鮫島 光貴 |
発行日 | 2017 年 9 月 1 日 (初版発行) |
発行元 | C&A 研究所 |
定価 | 2430 円(税別) |
サイズ | A5 版 |
ISBN | 978-4-86354-226-6 |
その他 | 越谷市立図書館にて借りて読む |
まりんきょ学問所 > コンピュータの本 > Scala > 鮫島 光貴:基礎からわかる Scala