表紙画像

次世代iOS、OS Xプログラマーのための
Swift言語入門

2014年10月10日 初版第1刷発行

本書の記載内容について訂正があります。
こちらを参照してください。

付録 「Swift言語入門」のWindows・スマートフォンでの学習方法
こちらからダウンロードできます。

本書について

 Apple社がサンフランシスコにおいて2014年6月2日から開催したソフトウェア開発者のための世界開発者会議(WWDC:WorldWide Developers Conference)で新しいプログラミング言語Swiftを発表した。この会議の謳い文句は「Write the code. Change the world.」(コードを書いて世界を変えよう)である。Objective-C言語の難しさを改善し、全く新しい言語仕様にして、多くの人々がアプリ開発に参加できるように、次世代プログラマーの裾野を広げる狙いがあったと思われる。ハードウェアの進化もさることながら、もっと重要なのは多くのユーザが社会に役に立つアプリを開発することが、ハードウェアをも左右する。
 本書は、プログラミングがはじめての学習者でも、Swift言語の基本文法を学習しながら、基本的なアルゴリズムやシステム設計のためのプログラミング手法が習得でき、将来的にはiPhoneやiPadのようなiOSやOS X Yosemiteで開発効率や信頼性、保守性の良いアプリが開発できる基盤ができることを目標とした。有用なプログラミング技術を統合すれば、Swift言語もFortress言語もJava言語も行き着くところは同じようなプログラミングになると思われる。世界共通語エスペラントのように、いつの日にかIT世界共通のプログラミング言語ができ、ライブラリで勝負する時代になると良いと思われる。孔子の論語にある「有教無類」という言葉が好きだが、Swift言語のようなプログラミング言語教育があれば、誰でもが社会に役立つアプリ開発ができる人間になれると解釈したい。

[2014/11/14]ダウンロードサービスのファイルがバージョンアップされました。

目 次

■正誤表■ 2014/11/12(第3刷では修正されています)

本文の内容に誤りがありました。 お詫びして訂正いたします。

P.4 下から1行目

動作するとされている。

動作する。

P.7 上から3~5行目

できるとされている。……可能となったと思われる。

できる。……可能となった。

P.146 図の上から5行目

・func f(s: String) { println(s) } ←f(Java)
・func f(s: String) { println(s) } ←f("Java")

P.146 図の下から2行目

・func f(s:String) -> String { return s } ←f(Java)
・func f(s:String) -> String { return s } ←f("Java")

P.8-9、P.51-52、P.178-179、P.231-232  Xcode 6.1に対応する修正です。

第2刷までの読者でXcode 6.1に対応するには、第3刷の対応ページのPDFを参照ください。修正個所はハイライト表示されています。

第3刷の読者でXcode 6.0に対応するには、第2刷の対応ページのPDFを参照ください。

■正誤表■ 2014/10/20

本文の内容に誤りがありました。 お詫びして訂正いたします。

P.40 上から4行目 等号を入れる(ダウンロード用のソースコード変更なし)

  if x ! nil {  ←if文の判定で、ブール値で評価される
  if x != nil {  ←if文の判定で、ブール値で評価される

P.60 上から2行目 説明文:「値0で初期化」→「値1で初期化」

値0で初期化

値1で初期化

P.114 図面中のコード7,8行目(2カ所)

  prefix
  postfix

■正誤表■ 2014/9/16

本文の内容に誤りがありました。 お詫びして訂正いたします。

P.64 上から1行目 プログラムリストのファイル名の間違い

  //Sw3-35.swift 実数配列に実数演算による実数の追加の方法
  //Sw3-33.swift 実数配列に実数演算による実数の追加の方法

P.134 下から10行目 「..」は「..<」の間違い

  case (0, 1),(_, 4),(-3..-2, 5..7):  ←タプルも使え、タプル内に範囲演算もよい
  case (0, 1),(_, 4),(-3..<-2, 5..<7):  ←タプルも使え、タプル内に範囲演算もよい

P.135 上から13~16行目 「..」は「..<」の間違い

  case 0..18: println("やせぎみ")   ←BMIが0以上18未満はやせぎみ
  case 18..25: println("普通")    ←BMIが18以上25未満は普通とした
  case 25..30: println("肥満1度")  ←BMIが25以上30未満は肥満1度とした
  case 30..35: println("肥満2度")  ←BMIが30以上35未満は肥満2度とした
  case 0..<18: println("やせぎみ")   ←BMIが0以上18未満はやせぎみ
  case 18..<25: println("普通")    ←BMIが18以上25未満は普通とした
  case 25..<30: println("肥満1度")  ←BMIが25以上30未満は肥満1度とした
  case 30..<35: println("肥満2度")  ←BMIが30以上35未満は肥満2度とした
  

P.256 上から4行目 [ ]の抜け

 var a : AnyObject = [A(), B()]  ←クラス配列の生成
  var a : [AnyObject] = [A(), B()]  ←クラス配列の生成

P.277 下から2~3行目 表示の間違い

  println(c.i)                 ←optional(2)と表示される
  if c.f() { println(c.f()) }  ←optional(4)と表示される
  
  println(c.i)                 ←Optional(2)と表示される
 if c.f() { println(c.f()) }  ←Optional(4)と表示される