<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>devkuma – Swift</title>
    <link>https://www.devkuma.com/jp/tags/swift/</link>
    <image>
      <url>https://www.devkuma.com/jp/tags/swift/logo/180x180.jpg</url>
      <title>Swift</title>
      <link>https://www.devkuma.com/jp/tags/swift/</link>
    </image>
    <description>Recent content in Swift on devkuma</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>jp</language>
    <managingEditor>kc@example.com (kc kim)</managingEditor>
    <webMaster>kc@example.com (kc kim)</webMaster>
    <copyright>The devkuma</copyright>
    
	  <atom:link href="https://www.devkuma.com/jp/tags/swift/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Swift 入門 | Swift を使う準備</title>
      <link>https://www.devkuma.com/jp/docs/swift/swift-%EC%82%AC%EC%9A%A9-%EC%A4%80%EB%B9%84/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/swift-%EC%82%AC%EC%9A%A9-%EC%A4%80%EB%B9%84/</guid>
      <description>
        
        
        &lt;p&gt;Swift は Apple の公式開発環境である Xcode で利用する。ここでは利用の準備を行い、簡単なプログラムを実行する方法を説明する。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | Swift を使う準備 | Swift とは</title>
      <link>https://www.devkuma.com/jp/docs/swift/swift-%EC%8A%A4%EC%9C%84%ED%94%84%ED%8A%B8%EB%9E%80/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/swift-%EC%8A%A4%EC%9C%84%ED%94%84%ED%8A%B8%EB%9E%80/</guid>
      <description>
        
        
        &lt;p&gt;Swift は、2014 年 6 月に開催された Apple の開発者向けカンファレンスで突然発表された、まったく新しいプログラミング言語である。&lt;/p&gt;
&lt;p&gt;それまで、macOS や iOS（iPhone、iPad）向けのアプリ開発では、Objective-C というプログラミング言語が使われていた。これは macOS の成り立ちに由来する。&lt;/p&gt;
&lt;p&gt;macOS は、それ以前に存在した NeXTSTEP という OS を基盤としている。NeXTSTEP はもともと、強力なオブジェクト指向言語である Objective-C でプログラムを作成し、実行するためのプラットフォームとして開発された。Objective-C と NeXTSTEP は非常に密接な関係にあった。NeXTSTEP を開発していたのが NeXT 社であり、その CEO がスティーブ・ジョブズだった。&lt;/p&gt;
&lt;p&gt;スティーブ・ジョブズが Apple に復帰したとき、NeXTSTEP も Apple に移り、macOS の基盤となった。外観は Mac らしくなったが、内部は NeXTSTEP を基にしている。そのため、macOS は Objective-C のプログラムを動かすことを前提としていた。&lt;/p&gt;
&lt;p&gt;この前提は現在も完全になくなったわけではない。macOS と iOS には Objective-C 向けに用意されたフレームワークが含まれており、アプリケーションはそれらを利用して動作する。Mac や iPhone の開発で Objective-C が使われてきたのは、OS 自体が Objective-C を前提として設計されていたためである。&lt;/p&gt;
&lt;p&gt;Objective-C は決して理解しやすい言語ではない。C 言語と、初期のオブジェクト指向言語である Smalltalk の考え方を組み合わせているため、1 つの言語の中に 2 つの構文が同居しているように見える。C++、Java、C# など、より馴染みやすい構文を持つ言語が主流になるにつれて、Objective-C は一般的な言語とは異なり、学習が難しい言語だと認識されるようになった。&lt;/p&gt;
&lt;p&gt;Mac や iPhone の普及により、多くの開発者がアプリケーション開発に参加した。しかし、Objective-C のとっつきにくさに戸惑い、もっと理解しやすい言語を求める開発者も多かった。&lt;/p&gt;
&lt;p&gt;この状況は Apple にとっても望ましいものではなかった。そこで登場したのが、学びやすく、理解しやすく、使いやすい新しい言語である Swift だ。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | Swift を使う準備 | Swift の特徴</title>
      <link>https://www.devkuma.com/jp/docs/swift/swift-%ED%8A%B9%EC%A7%95/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/swift-%ED%8A%B9%EC%A7%95/</guid>
      <description>
        
        
        &lt;p&gt;Swift とはどのような言語なのだろうか。ここでは、その特徴を簡単に整理する。&lt;/p&gt;
&lt;h2 id=&#34;モダンな言語&#34;&gt;モダンな言語&lt;/h2&gt;
&lt;p&gt;Objective-C は、現代の言語が採用している便利な機能の多くをサポートしていなかった。Swift では、処理を値のように扱えるクロージャや、さまざまな種類の値を扱えるジェネリクスなど、Objective-C では利用できなかった言語機能が用意されている。&lt;/p&gt;
&lt;h2 id=&#34;安全性を重視した言語&#34;&gt;安全性を重視した言語&lt;/h2&gt;
&lt;p&gt;Swift には、バグの原因になりやすい要素をコードから減らすための構文がある。たとえば、変数は初期化する必要があり、オブジェクトが存在しない状態は Optional で明示的に表現する。変数には最初から型があり、制御構文の処理は必ず波かっこで囲む。これらの機能によって、プログラマーの不注意によるミスを減らせる。&lt;/p&gt;
&lt;h2 id=&#34;対話的に実行できる言語&#34;&gt;対話的に実行できる言語&lt;/h2&gt;
&lt;p&gt;Swift はコンパイル言語である。プログラムをあらかじめコンパイルし、コンピューターが直接実行できるバイナリーコードに変換できる。同時に、Swift は対話的にも実行できる。Xcode には Playground が用意されており、その場で文を書いてすぐに実行できる。まずはこの方法で Swift の基本を学んでいく。&lt;/p&gt;
&lt;h2 id=&#34;高速な実行&#34;&gt;高速な実行&lt;/h2&gt;
&lt;p&gt;Swift にはさまざまな便利な機能があるため、Objective-C のアプリケーションのほうが高速に動作すると考えるかもしれない。しかし Apple は、Swift で作成したプログラムが Objective-C より高速に実行できると説明していた。&lt;/p&gt;
&lt;p&gt;初期の Swift には多くのボトルネックがあるという指摘もあり、常に Objective-C より高速だと言い切れるわけではなかった。ただし、言語の成熟に伴って性能が向上することが期待されていた。&lt;/p&gt;
&lt;h2 id=&#34;objective-c-と同じ基盤&#34;&gt;Objective-C と同じ基盤&lt;/h2&gt;
&lt;p&gt;macOS や iOS で Objective-C が使われてきたのは、OS 自体がこの言語向けに最適化されていたためである。Swift のような新しい言語が登場しても、この基盤は変わらない。macOS や iOS に組み込まれたフレームワークは Objective-C 向けに作られており、Swift もそれらをそのまま利用する。言語は新しくても、OS の機能を利用するときには Objective-C で使っていた機能の多くを引き続き利用できる。新しい言語のために、すべての機能を最初から学び直す必要はない。Objective-C で学んだ知識の多くをそのまま活用できる。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | Swift を使う準備 | Swift の準備</title>
      <link>https://www.devkuma.com/jp/docs/swift/swift-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%9C-%EC%A4%80%EB%B9%84/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/swift-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%9C-%EC%A4%80%EB%B9%84/</guid>
      <description>
        
        
        &lt;p&gt;それでは Swift を使えるように準備しよう。Swift は Apple が提供する開発環境 Xcode 6 以降でサポートされている。Xcode 6 は 2014 年秋にリリースされ、この記事を執筆した 2017 年 9 月時点では Xcode 7 まで登場していた。&lt;/p&gt;
&lt;p&gt;Xcode は App Store からインストールするか、Apple の開発者向けサイトからダウンロードしてインストールできる。開発者向けサイトからダウンロードできるかどうかは、Apple Developer Program のメンバーシップによって異なる場合がある。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://developer.apple.com/xcode/downloads/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://developer.apple.com/xcode/downloads/&lt;i class=&#34;fas fa-external-link-alt&#34;&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Apple の開発者向けサイトからダウンロードした場合は、ディスクイメージ（&lt;code&gt;.dmg&lt;/code&gt;）をマウントして Xcode をコピーすればインストールできる。&lt;/p&gt;
&lt;p&gt;初回起動時には必要なコンポーネントを設定するため、少し時間がかかることがある。コンポーネントのインストールを確認するダイアログが表示されたら、インストールを完了する。Xcode が正常に起動すれば準備は完了である。&lt;/p&gt;
&lt;h2 id=&#34;playground-を使う&#34;&gt;Playground を使う&lt;/h2&gt;
&lt;p&gt;Xcode を起動したら、まず Playground を作成しよう。Playground は Swift プログラムをすぐに実行できる特別なファイルである。&lt;/p&gt;
&lt;p&gt;Xcode の起動時に表示される Welcome ウィンドウで「Get started with a playground」をクリックする。続いて表示されるダイアログで Name にプログラム名またはファイル名を入力し、Platform で「OS X」を選択する。保存先のフォルダーを選んで保存すると Playground ウィンドウが表示され、すぐに利用できる。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.devkuma.com/docs/swift/xcode_welcome.png&#34; alt=&#34;Xcode welcome&#34;&gt;&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | Swift を使う準備 | Playground の実行</title>
      <link>https://www.devkuma.com/jp/docs/swift/xcode-playground/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/xcode-playground/</guid>
      <description>
        
        
        &lt;p&gt;新しく作成した Playground には、初期状態で簡単な文が書かれている。まず、その意味を理解しよう。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;// Playground - noun: a place where people can play&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Cocoa&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;str&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Hello, playground&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;ライブラリのインポート&#34;&gt;ライブラリのインポート&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Cocoa&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これは Cocoa フレームワークをインポートする。macOS や iOS には、OS 固有の機能を扱う Cocoa というフレームワークが含まれている。&lt;code&gt;import&lt;/code&gt; 文は指定したライブラリを読み込み、プログラムから利用できるようにする。&lt;/p&gt;
&lt;h2 id=&#34;変数の利用&#34;&gt;変数の利用&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;str&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Hello, playground&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この文には複数の要素が含まれている。まず、&lt;code&gt;var str&lt;/code&gt; で &lt;code&gt;str&lt;/code&gt; という変数を作成する。テキストの値は二重引用符で囲んで記述する。&lt;/p&gt;
&lt;p&gt;エディターの右側に表示される &lt;code&gt;&amp;quot;Hello, playground&amp;quot;&lt;/code&gt; というテキストは、&lt;code&gt;var str&lt;/code&gt; 文を実行した結果である。&lt;/p&gt;
&lt;p&gt;Playground では、記述した文の実行結果がその場で表示される。たとえば、変数を作成して値を代入すると、変数に格納された値が右側に表示される。便利な機能である。&lt;/p&gt;
&lt;p&gt;Playground を使うと、少しずつプログラムを書きながら、その場で結果を確認できる。これで Swift を試す環境が準備できた。&lt;/p&gt;
&lt;p&gt;次の記事からは Playground を使って Swift の基本構文を説明する。&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://www.devkuma.com/docs/swift/xcode_playground.png&#34; alt=&#34;Xcode playground&#34;&gt;&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 値、変数、演算</title>
      <link>https://www.devkuma.com/jp/docs/swift/%EA%B0%92-%EB%B3%80%EC%88%98-%EC%97%B0%EC%82%B0/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%EA%B0%92-%EB%B3%80%EC%88%98-%EC%97%B0%EC%82%B0/</guid>
      <description>
        
        
        &lt;p&gt;プログラミングの基本は、値、変数、演算である。ここでは、これらの基本的な概念から説明する。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 制御構文</title>
      <link>https://www.devkuma.com/jp/docs/swift/%EC%A0%9C%EC%96%B4-%EA%B5%AC%EB%AC%B8/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%EC%A0%9C%EC%96%B4-%EA%B5%AC%EB%AC%B8/</guid>
      <description>
        
        
        &lt;p&gt;制御構文は複雑なプログラムを書くために不可欠である。ここでは if、switch、for、while の 4 つの基本構文について説明する。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 制御構文 | while 文による繰り返し</title>
      <link>https://www.devkuma.com/jp/docs/swift/while-%EB%AC%B8%EC%97%90-%EC%9D%98%ED%95%9C-%EB%B0%98%EB%B3%B5/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/while-%EB%AC%B8%EC%97%90-%EC%9D%98%ED%95%9C-%EB%B0%98%EB%B3%B5/</guid>
      <description>
        
        
        &lt;p&gt;&lt;code&gt;for&lt;/code&gt; 文には、繰り返すたびに値を変化させる仕組みが構文に含まれている。一方、条件を確認し、処理を繰り返すかどうかだけを決める、より単純な繰り返し構文もある。それが &lt;code&gt;while&lt;/code&gt; 文である。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;while&lt;/code&gt; 文には、条件を記述する位置によって 2 つの書き方がある。後者は &lt;code&gt;do while&lt;/code&gt; 文とも呼ばれる。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;while の基本形&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;while&lt;/span&gt; &lt;span style=&#34;color:#a40000&#34;&gt;条件&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;...&lt;/span&gt; &lt;span style=&#34;color:#a40000&#34;&gt;繰り返し処理&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;do while の基本形&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;do&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;...&lt;/span&gt; &lt;span style=&#34;color:#a40000&#34;&gt;繰り返し処理&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;while&lt;/span&gt; &lt;span style=&#34;color:#a40000&#34;&gt;条件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;while&lt;/code&gt; の後に条件を記述する。条件が &lt;code&gt;true&lt;/code&gt; なら繰り返しを実行し、&lt;code&gt;false&lt;/code&gt; になるとループを抜ける。&lt;/p&gt;
&lt;p&gt;単純な処理なのに、なぜ 2 つの書き方があるのだろうか。違いは条件を確認するタイミングにある。前者のように構文の先頭に &lt;code&gt;while&lt;/code&gt; がある場合は、最初に &lt;code&gt;while&lt;/code&gt; の後にある条件を確認し、それが &lt;code&gt;true&lt;/code&gt; なら &lt;code&gt;{}&lt;/code&gt; の中を実行する。&lt;/p&gt;
&lt;p&gt;後者のように構文の末尾に &lt;code&gt;while&lt;/code&gt; がある場合は、繰り返し処理を行う &lt;code&gt;{}&lt;/code&gt; の中を先に実行し、終わってから条件を確認する。そのため、最初から条件が &lt;code&gt;false&lt;/code&gt; であっても、&lt;code&gt;{}&lt;/code&gt; の中は必ず 1 回実行される。&lt;/p&gt;
&lt;p&gt;次の単純な繰り返しを比較してみよう。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;n&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;while&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;n&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;++&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;index:&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#204a87&#34;&gt;String&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;n&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;m&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;do&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;index:&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#204a87&#34;&gt;String&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;m&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;while&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;m&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;++&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;前者では &lt;code&gt;index:1&lt;/code&gt; から &lt;code&gt;index:10&lt;/code&gt; までの値を得られる。後者では &lt;code&gt;index:0&lt;/code&gt; から &lt;code&gt;index:9&lt;/code&gt; までの値になる。条件式の中で &lt;code&gt;++&lt;/code&gt; により変数を増加させているため、条件が前にあるか後にあるかによって値が異なる。&lt;/p&gt;
&lt;p&gt;このように、細かな動作を見ると両者には違いがある。基本的には &lt;code&gt;while&lt;/code&gt; を使い、&lt;code&gt;do while&lt;/code&gt; は必要な事情がある場合にだけ使うと考えておくとよい。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 関数</title>
      <link>https://www.devkuma.com/jp/docs/swift/%ED%95%A8%EC%88%98/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%ED%95%A8%EC%88%98/</guid>
      <description>
        
        
        &lt;p&gt;関数は処理をまとめ、必要なときに呼び出せるようにする。プログラムを構造化するための重要な機能である。Swift の関数は細部まで使いやすく設計されており、独特な機能を備えている。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 関数 | 関数の定義と利用</title>
      <link>https://www.devkuma.com/jp/docs/swift/%ED%95%A8%EC%88%98-%EC%A0%95%EC%9D%98-%EB%B0%8F-%EC%82%AC%EC%9A%A9/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%ED%95%A8%EC%88%98-%EC%A0%95%EC%9D%98-%EB%B0%8F-%EC%82%AC%EC%9A%A9/</guid>
      <description>
        
        
        &lt;p&gt;これまでの例では、記述した処理を順番に実行してきた。しかし、実際のプログラムはそれほど単純ではない。&lt;/p&gt;
&lt;p&gt;繰り返し利用する処理は 1 つにまとめ、必要なときに呼び出せるようにする。このために使うものが関数である。&lt;/p&gt;
&lt;p&gt;Swift では、関数を次のように定義して呼び出す。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;func 関数名(引数) -&amp;gt; 戻り値の型 {
    ...... 実行する処理 ......
    return 値
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;関数名の後の丸かっこ内に引数を指定する。引数は &lt;code&gt;変数名:型&lt;/code&gt; のように、名前と型の組み合わせで記述する。複数の引数がある場合はカンマで区切る。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;-&amp;gt;&lt;/code&gt; の後に戻り値の型を指定する。値を返さない場合は &lt;code&gt;Void&lt;/code&gt; を指定するか、戻り値の型を省略する。省略すると自動的に &lt;code&gt;Void&lt;/code&gt; と判断される。&lt;/p&gt;
&lt;p&gt;値を返すには &lt;code&gt;return&lt;/code&gt; を使う。戻り値が &lt;code&gt;Void&lt;/code&gt; の場合、&lt;code&gt;return&lt;/code&gt; は不要である。&lt;/p&gt;
&lt;p&gt;次に簡単な例を示す。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;func&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;calc&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;total&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;i&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1.&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#000&#34;&gt;total&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;+=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;i&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;total&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;calc&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;100&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;このコードでは、整数を受け取り、&lt;code&gt;1&lt;/code&gt; からその値までの合計を返す &lt;code&gt;calc&lt;/code&gt; 関数を定義して呼び出している。&lt;code&gt;calc(num:Int)&lt;/code&gt; は &lt;code&gt;Int&lt;/code&gt; 型の引数を 1 つ受け取ることを示す。&lt;code&gt;-&amp;gt; Int&lt;/code&gt; は &lt;code&gt;Int&lt;/code&gt; 型の値を返すことを示す。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift</title>
      <link>https://www.devkuma.com/jp/docs/swift/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/</guid>
      <description>
        
        
        &lt;p&gt;&lt;img src=&#34;https://www.devkuma.com/docs/swift/swift.jpg&#34; alt=&#34;Swift&#34;&gt;&lt;/p&gt;
&lt;p&gt;Swift は、macOS や iPhone、iPad などの iOS アプリを作成するために開発されたプログラミング言語である。Swift の基礎を学び、アプリ開発に挑戦しよう。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 関数 | 引数のデフォルト値</title>
      <link>https://www.devkuma.com/jp/docs/swift/%EC%9D%B8%EC%88%98%EC%9D%98-%EA%B8%B0%EB%B3%B8%EA%B0%92/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%EC%9D%B8%EC%88%98%EC%9D%98-%EA%B8%B0%EB%B3%B8%EA%B0%92/</guid>
      <description>
        
        
        &lt;p&gt;関数の引数については、ほかにも学んでおくべき機能がある。ここではデフォルト値について説明する。&lt;/p&gt;
&lt;p&gt;関数の引数には、あらかじめデフォルト値を指定できる。引数として用意した変数に、等号（&lt;code&gt;=&lt;/code&gt;）で値を代入するだけでよい。次のように記述する。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;func 関数名(引数名:型 = デフォルト値)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;デフォルト値を指定すると、引数名は自動的に外部名となり、呼び出し側から指定できる。したがって、シャープ記号（&lt;code&gt;#&lt;/code&gt;）を付けて省略記法で指定する必要はない。&lt;/p&gt;
&lt;p&gt;デフォルト値を指定するということは、その引数を省略できるということである。関数を呼び出すとき、その引数はあってもなくてもよい。どの引数の値を渡しているのか分かるように、デフォルト値を持つ引数には外部名を使う。&lt;/p&gt;
&lt;p&gt;次に、デフォルト値を利用する例を示す。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;func tax(#price:Int, rate:Double = 0.08) -&amp;gt; Int {
    return Int(Double(price) * (1.0 + rate))
}
 
var res:Int = tax(price:10000, rate:0.08)
var res3:Int = tax(price:12300)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;rate&lt;/code&gt; 引数を省略すると、自動的に &lt;code&gt;0.08&lt;/code&gt; が使われる。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 関数 | 可変長引数</title>
      <link>https://www.devkuma.com/jp/docs/swift/%EA%B0%80%EB%B3%80-%EC%9D%B8%EC%88%98/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%EA%B0%80%EB%B3%80-%EC%9D%B8%EC%88%98/</guid>
      <description>
        
        
        &lt;p&gt;関数に渡される値の数が決まっていない場合は、可変長引数を使う。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;(引数名:型...)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この引数には、複数の値をカンマ区切りで渡せる。関数側では、それらの値を配列として受け取る。可変長引数は配列を引数として受け取るものだと考えるとよい。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;func&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;calc&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;nums&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;...)&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;total&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;nums&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#000&#34;&gt;total&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;+=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;total&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;calc&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;4&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;5&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;引数は次のように定義する。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;calc(nums:Int...) 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;呼び出しは次のようになる。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;calc(1,2,3,4,5) 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;複数の値が &lt;code&gt;nums&lt;/code&gt; に渡される。関数内では &lt;code&gt;for&lt;/code&gt; 文で繰り返し処理する。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;for num in nums {...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;可変長引数の要素数は一定ではない。&lt;code&gt;for&lt;/code&gt; 文で処理するのが基本である。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 関数 | inout 引数</title>
      <link>https://www.devkuma.com/jp/docs/swift/inout-%EC%9D%B8%EC%88%98/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/inout-%EC%9D%B8%EC%88%98/</guid>
      <description>
        
        
        &lt;p&gt;Swift の関数について、もう 1 つ覚えておきたい機能が &lt;code&gt;inout&lt;/code&gt; 引数である。これは渡された引数自体を変更できる特別な引数である。引数の前に &lt;code&gt;inout&lt;/code&gt; を付ける。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;inout&lt;/span&gt; &lt;span style=&#34;color:#a40000&#34;&gt;引数名&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#a40000&#34;&gt;型&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;inout&lt;/code&gt; 引数に変数を渡すときは、変数名の前に &lt;code&gt;&amp;amp;&lt;/code&gt; を付ける。リテラルは変更できないため、渡すことはできない。&lt;/p&gt;
&lt;p&gt;次に &lt;code&gt;inout&lt;/code&gt; 引数の例を示す。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;func&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;tax&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;inout&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;price&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;rate&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Double&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0.08&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#204a87&#34;&gt;Void&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;price&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Double&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;price&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1.0&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;rate&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;12300&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;tax&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&amp;amp;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;関数は次のように定義されている。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;tax&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;inout&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;price&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;rate&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Double&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0.08&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;最初の引数 &lt;code&gt;price&lt;/code&gt; が &lt;code&gt;inout&lt;/code&gt; 引数である。戻り値の型は &lt;code&gt;Void&lt;/code&gt; である。関数の呼び出しは次のようになる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;tax&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&amp;amp;&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これにより、変数 &lt;code&gt;num&lt;/code&gt; の値が直接変更される。関数は値を返すのが基本だが、&lt;code&gt;inout&lt;/code&gt; 引数を使うと変数に格納された値自体を直接変更できる。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | クラスの基本</title>
      <link>https://www.devkuma.com/jp/docs/swift/%ED%81%B4%EB%9E%98%EC%8A%A4-%EA%B8%B0%EB%B3%B8/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%ED%81%B4%EB%9E%98%EC%8A%A4-%EA%B8%B0%EB%B3%B8/</guid>
      <description>
        
        
        &lt;p&gt;オブジェクト指向言語では、クラスを定義してオブジェクトを作成し、利用する。ここではクラスの基本的な使い方に加えて、継承、オーバーライド、Computed プロパティ、型プロパティ、型メソッドについて説明する。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | クラスの基本 | イニシャライザー</title>
      <link>https://www.devkuma.com/jp/docs/swift/%EC%9D%B4%EB%8B%88%EC%85%9C%EB%9D%BC%EC%9D%B4%EC%A0%80/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%EC%9D%B4%EB%8B%88%EC%85%9C%EB%9D%BC%EC%9D%B4%EC%A0%80/</guid>
      <description>
        
        
        &lt;p&gt;これまでは &lt;code&gt;Helo()&lt;/code&gt; のように、引数を渡さずにインスタンスを作成してきた。インスタンスを作るときに必要な値を渡せると便利である。&lt;/p&gt;
&lt;p&gt;このために使うものがイニシャライザーである。イニシャライザーは、インスタンスを作成するときに自動的に呼び出される初期化専用のメソッドである。次のように定義する。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;init(引数) {
    ...... 初期化処理 ......
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;func init&lt;/code&gt; と書く必要はない。&lt;code&gt;init&lt;/code&gt; だけを記述する。イニシャライザーは特別なメソッドであるため、&lt;code&gt;func&lt;/code&gt; は不要である。&lt;/p&gt;
&lt;p&gt;丸かっこの中に引数を宣言すると、インスタンスの作成時に値を渡せる。次に簡単な例を示す。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;import Cocoa

class Helo {
    var name:String;
    
    init(name:String){
        self.name = name;
    }
    
    func say(){
        print(&amp;#34;Hello, &amp;#34; + name + &amp;#34;!&amp;#34;);
    }
}

var obj:Helo = Helo(name:&amp;#34;Taro&amp;#34;);
obj.say();
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;Helo&lt;/code&gt; クラスでは、&lt;code&gt;init(name:String)&lt;/code&gt; という形式でイニシャライザーを定義している。&lt;code&gt;Helo(name:&amp;quot;Taro&amp;quot;)&lt;/code&gt; のように引数を渡してインスタンスを作成する。&lt;/p&gt;
&lt;p&gt;イニシャライザー内では、引数 &lt;code&gt;name&lt;/code&gt; を &lt;code&gt;Helo&lt;/code&gt; クラスの &lt;code&gt;name&lt;/code&gt; プロパティに代入するために &lt;code&gt;self.name&lt;/code&gt; と書いている。&lt;code&gt;self&lt;/code&gt; はインスタンス自身を表す特別な値である。この構文は現在のインスタンスの &lt;code&gt;name&lt;/code&gt; プロパティを指し、クラス定義で頻繁に利用する。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | クラスの基本 | 型プロパティと型メソッド</title>
      <link>https://www.devkuma.com/jp/docs/swift/%EC%9C%A0%ED%98%95-%EC%86%8D%EC%84%B1-%EB%B0%8F-%EC%9C%A0%ED%98%95-%EB%A9%94%EC%86%8C%EB%93%9C/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%EC%9C%A0%ED%98%95-%EC%86%8D%EC%84%B1-%EB%B0%8F-%EC%9C%A0%ED%98%95-%EB%A9%94%EC%86%8C%EB%93%9C/</guid>
      <description>
        
        
        &lt;p&gt;通常のプロパティとメソッドは、インスタンスを作成してから利用する。クラスには、クラスから直接利用できるプロパティとメソッドを用意することもできる。これらを型プロパティ、型メソッドと呼ぶ。&lt;/p&gt;
&lt;p&gt;型プロパティと型メソッドを宣言するときは、先頭に &lt;code&gt;class&lt;/code&gt; 修飾子を付ける。すると、クラスから直接呼び出せる。&lt;/p&gt;
&lt;p&gt;型プロパティと型メソッドを使うときは、次の点に注意する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;型プロパティとして作成できるのは計算型プロパティである。通常の格納プロパティは利用できない。クラスに格納する変数がないため、計算型プロパティの setter を使う場面も限られる。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;型メソッド内で利用できるのは、型メソッドと型プロパティだけである。インスタンスで使う通常のプロパティとメソッドは利用できない。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;次に実際の例を示す。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;class Exchange {
    class var rate:Double {
        return 1005.0
    }
    
    class func DollarToWon(d:Double)-&amp;gt;Int {
        return Int(d * rate)
    }
    
    class func WonToDollar(y:Int)-&amp;gt;Double {
        return Double((y * 100) / Int(rate)) / 100
    }
}

print(Exchange.DollarToWon(1.5))
print(Exchange.WonToDollar(1500))
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この例では、ウォンからドル、ドルからウォンへ換算する &lt;code&gt;Exchange&lt;/code&gt; クラスを定義している。&lt;code&gt;rate&lt;/code&gt; 型プロパティと、計算を行う 2 つの型メソッドを用意している。このように計算を中心とするクラスは、毎回インスタンスを作る必要がないため、型メソッドとして提供すると効率よく利用できる。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 配列と辞書</title>
      <link>https://www.devkuma.com/jp/docs/swift/%EB%B0%B0%EC%97%B4%EA%B3%BC-%EC%82%AC%EC%A0%84/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%EB%B0%B0%EC%97%B4%EA%B3%BC-%EC%82%AC%EC%A0%84/</guid>
      <description>
        
        
        &lt;p&gt;配列と辞書は、複数の値をまとめて管理する。ここでは基本的な使い方について説明する。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 配列と辞書 | 配列の基本</title>
      <link>https://www.devkuma.com/jp/docs/swift/%EB%B0%B0%EC%97%B4%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EC%82%AC%ED%95%AD/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%EB%B0%B0%EC%97%B4%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EC%82%AC%ED%95%AD/</guid>
      <description>
        
        
        &lt;p&gt;配列は複数の値をまとめて管理する。配列には同じ型の値を保存し、各保存場所に &lt;code&gt;0&lt;/code&gt; から始まるインデックスを割り当てる。インデックスを使って値を取得したり、置き換えたりできる。&lt;/p&gt;
&lt;p&gt;配列を作成するときは、保存場所の数を指定する。10 個の要素を持つ配列のインデックスは &lt;code&gt;0&lt;/code&gt; から &lt;code&gt;9&lt;/code&gt; であり、&lt;code&gt;1&lt;/code&gt; から &lt;code&gt;10&lt;/code&gt; ではない。確保されていない番号を読み書きするとエラーになる。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;配列の作成&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;var 変数:型 = [型]()
var 変数:型 = [型](count: 数, repeatedValue: 値)
var 変数:型 = [値1, 値2, ...]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;値の読み書き&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;変数 = 配列[番号]
配列[番号] = 値
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;要素の型は角かっこで囲む。たとえば、文字列を保存する配列の型は &lt;code&gt;[String]&lt;/code&gt; である。&lt;/p&gt;
&lt;p&gt;空の配列は &lt;code&gt;[型]()&lt;/code&gt; で作成する。保存場所と初期値を指定する場合は次のように書く。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[型](count: 保存場所の数, repeatedValue: 初期値)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;[値1, 値2, ...]&lt;/code&gt; のような配列リテラルも使える。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;var arr1 : [Int] = [Int] (count : 10, repeatedValue : 0)
var arr2 : [Int] = [0,0,0,0,0,0,0,0,0,0]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;要素数が少ない場合は配列リテラルが便利である。1 万個の &lt;code&gt;0&lt;/code&gt; を保存する場合は、&lt;code&gt;(count: 10000, repeatedValue: 0)&lt;/code&gt; のほうが実用的である。&lt;/p&gt;
&lt;p&gt;代入する値から型が明確に分かる場合、Swift は型を推論できる。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;var arr1 = [Int] (count : 10, repeatedValue : 0)
var arr2 = [0,0,0,0,0,0,0,0,0,0]
&lt;/code&gt;&lt;/pre&gt;
      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 配列と辞書 | 配列と for-in 文</title>
      <link>https://www.devkuma.com/jp/docs/swift/%EB%B0%B0%EC%97%B4%EA%B3%BC-for-in-%EA%B5%AC%EB%AC%B8/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%EB%B0%B0%EC%97%B4%EA%B3%BC-for-in-%EA%B5%AC%EB%AC%B8/</guid>
      <description>
        
        
        &lt;p&gt;配列はインデックス番号を指定して要素を 1 つずつ取り出して処理できる。ただし、データ管理などに利用する場合は、すべての要素に同じ処理を行いたいことがある。&lt;/p&gt;
&lt;p&gt;このような場合に使うのが &lt;code&gt;for-in&lt;/code&gt; 文である。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;for 変数 in 配列 {
    ...... 実行する処理 ......
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;for-in&lt;/code&gt; 文は配列から順番に値を取り出して変数に代入し、波かっこ内の処理を繰り返し実行する。波かっこ内でその変数を利用すれば、配列のすべての要素に同じ処理を行える。&lt;/p&gt;
&lt;p&gt;次に簡単な例を示す。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;let&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;data&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:[&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;20&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;30&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;total&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;data&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000&#34;&gt;total&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;+=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#3465a4&#34;&gt;println&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;total: &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;\(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;total&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;このコードは、配列 &lt;code&gt;data&lt;/code&gt; の値をすべて取り出して合計し、表示する。&lt;code&gt;for num in data&lt;/code&gt; によって、&lt;code&gt;data&lt;/code&gt; から順番に値を取り出し、&lt;code&gt;num&lt;/code&gt; に代入して処理している。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 構造体、列挙型、タプル</title>
      <link>https://www.devkuma.com/jp/docs/swift/%EA%B5%AC%EC%A1%B0%EC%B2%B4-%EC%97%B4%EA%B1%B0%ED%98%95-%ED%8A%9C%ED%94%8C/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%EA%B5%AC%EC%A1%B0%EC%B2%B4-%EC%97%B4%EA%B1%B0%ED%98%95-%ED%8A%9C%ED%94%8C/</guid>
      <description>
        
        
        &lt;p&gt;Swift では複雑な構造を持つ値が多く登場する。ここでは構造体、列挙型、タプルについて説明する。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 構造体、列挙型、タプル | タプル</title>
      <link>https://www.devkuma.com/jp/docs/swift/%ED%8A%9C%ED%94%8C-tuple/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%ED%8A%9C%ED%94%8C-tuple/</guid>
      <description>
        
        
        &lt;p&gt;タプルはすでに何度か登場している。タプルは、型が異なる複数の値を 1 か所にまとめて扱える。次のように記述する。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;(値1, 値2, ...)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;丸かっこの中に値をカンマ区切りで書くだけで、タプルを作成できる。タプルを格納した変数の後に &lt;code&gt;.1&lt;/code&gt; のようにドットと番号を指定すると、値を取得できる。&lt;/p&gt;
&lt;p&gt;番号で指定する方法は、値の順序を正確に理解していないと間違えることがある。そのため、辞書のようにタプルの値に名前を付けることもできる。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;(キー1 : 値1, キー2 : 値2, ...)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この形式で記述したタプルでは、&lt;code&gt;タプル.キー&lt;/code&gt; のように、番号ではなくキーを使って値を取り出せる。配列と辞書の違いに近いものだと考えるとよい。&lt;/p&gt;
&lt;p&gt;次にタプルを使う例を示す。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;func MakeTuple(name:String, age:Int)-&amp;gt;(name:String, age:Int) {
    return (name:name, age:age)
}

var me = MakeTuple(&amp;#34;Yamada&amp;#34;, age: 99)
var you = MakeTuple(&amp;#34;Hanako&amp;#34;, age: 36)

print(me.name)
print(you.age)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;この例では、決まった形式のタプルを作る関数を用意し、それを使ってタプルを作成して値を表示している。&lt;/p&gt;
&lt;p&gt;タプルは自由に値の構成を決められる。その自由さによって内容がばらばらになることもあるが、このような関数を使えば同じ形式のタプルを作成できる。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 関数リテラルとクロージャ</title>
      <link>https://www.devkuma.com/jp/docs/swift/%ED%95%A8%EC%88%98-%EB%A6%AC%ED%84%B0%EB%9F%B4-%EB%B0%8F-%ED%81%B4%EB%A1%9C%EC%A0%80/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%ED%95%A8%EC%88%98-%EB%A6%AC%ED%84%B0%EB%9F%B4-%EB%B0%8F-%ED%81%B4%EB%A1%9C%EC%A0%80/</guid>
      <description>
        
        
        &lt;p&gt;Swift にはクロージャという機能がある。これは関数を値として扱う仕組みである。ここではクロージャと、関数を値として利用する方法について説明する。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 関数リテラルとクロージャ | 関数は値である</title>
      <link>https://www.devkuma.com/jp/docs/swift/%ED%95%A8%EC%88%98%EB%8A%94-%EA%B0%92%EC%9D%B4%EB%8B%A4%21/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%ED%95%A8%EC%88%98%EB%8A%94-%EA%B0%92%EC%9D%B4%EB%8B%A4%21/</guid>
      <description>
        
        
        &lt;p&gt;Swift の関数には重要な特徴がある。それは値として扱えることである。関数は処理をまとめたものだが、Swift では関数自体も値である。&lt;/p&gt;
&lt;p&gt;次の簡単な例を実行してみよう。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;func&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;calc&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;res&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;n&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0.&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#000&#34;&gt;res&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;+=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;n&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;res&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;f1&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;calc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#3465a4&#34;&gt;print&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;f1&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この例では &lt;code&gt;calc&lt;/code&gt; という関数を定義している。次に &lt;code&gt;calc&lt;/code&gt; を変数 &lt;code&gt;f1&lt;/code&gt; に代入し、引数を渡して &lt;code&gt;f1&lt;/code&gt; を呼び出している。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;calc&lt;/code&gt; の処理が正しく実行され、結果を取得できる。つまり、変数 &lt;code&gt;f1&lt;/code&gt; に代入された &lt;code&gt;calc&lt;/code&gt; 関数が期待どおりに動作している。&lt;/p&gt;
&lt;p&gt;関数が値であるため、Swift では関数をさまざまな形で扱える。まずは「関数は値である」という点をしっかり覚えておこう。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 関数リテラルとクロージャ | クロージャ</title>
      <link>https://www.devkuma.com/jp/docs/swift/%ED%81%B4%EB%A1%9C%EC%A0%80-closure/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%ED%81%B4%EB%A1%9C%EC%A0%80-closure/</guid>
      <description>
        
        
        &lt;p&gt;関数を値として扱う基本が分かったので、Swift の中心的な機能であるクロージャを使ってみよう。&lt;/p&gt;
&lt;p&gt;クロージャを使うと、関数を引数として別の関数に渡せる。関数は値であるため、関数自体を引数として受け取る関数も作成できる。&lt;/p&gt;
&lt;p&gt;実際の例を見ると分かりやすい。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;func calc(num:Int)-&amp;gt;Int {
    var res = 0
    for n in 0...num {
        res += n
    }
    return res
}

func printResult(function:(num:Int)-&amp;gt;Int, n:Int) {
    print(function(num: n))
}

printResult(calc, n: 123)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;このコードでは &lt;code&gt;calc&lt;/code&gt; と &lt;code&gt;printResult&lt;/code&gt; という 2 つの関数を定義している。&lt;code&gt;calc&lt;/code&gt; は前の例と同じように、&lt;code&gt;0&lt;/code&gt; から引数の値までの合計を返す。クロージャを使っているのは &lt;code&gt;printResult&lt;/code&gt; である。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;printResult&lt;/code&gt; は関数と &lt;code&gt;Int&lt;/code&gt; 値を受け取る。関数の型は &lt;code&gt;(num:Int)-&amp;gt;Int&lt;/code&gt; である。&lt;code&gt;calc&lt;/code&gt; を渡して呼び出すと、内部で関数を実行して結果を表示する。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;printResult&lt;/code&gt; は &lt;code&gt;calc&lt;/code&gt; の結果だけを表示するものではない。&lt;code&gt;Int&lt;/code&gt; 値を受け取り、&lt;code&gt;Int&lt;/code&gt; 値を返す関数であれば、どの関数でも渡せる。&lt;/p&gt;
&lt;p&gt;クロージャを使うと、処理を関数の外部に分離して渡せる。これがクロージャの大きな利点である。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | 関数リテラルとクロージャ | 関数リテラル</title>
      <link>https://www.devkuma.com/jp/docs/swift/%ED%95%A8%EC%88%98-%EB%A6%AC%ED%84%B0%EB%9F%B4/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%ED%95%A8%EC%88%98-%EB%A6%AC%ED%84%B0%EB%9F%B4/</guid>
      <description>
        
        
        &lt;p&gt;クロージャでは、関数を値として渡す。前の例のように、関数をあらかじめ定義して引数に指定できる。&lt;/p&gt;
&lt;p&gt;ただし、単純な処理を 1 か所でしか使わない場合、別の関数を定義する必要はない。関数リテラルを使い、引数として関数を直接記述できる。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;{ ... 処理 ... }
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;実際には、引数を含めて次のように書くことが多い。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;{ 引数 in ... 処理 ... }
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;引数が複数ある場合はカンマで区切る。関数リテラルを使うと、必要な関数を事前に定義せず、その場で渡せる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;func&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;printResult&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;function&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;,&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;n&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#3465a4&#34;&gt;print&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;function&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;n&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;printResult&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;({&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;n&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;n&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;*&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;n&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;10&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;printResult&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;({&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;n&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;in&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;re&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0.&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;n&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#000&#34;&gt;re&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;+=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;re&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;},&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;n&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;100&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この例では、前に定義した &lt;code&gt;printResult&lt;/code&gt; 関数を呼び出している。別の &lt;code&gt;calc&lt;/code&gt; 関数は使わず、呼び出し時に関数リテラルを直接渡している。&lt;/p&gt;
&lt;p&gt;結果を 1 つの式で求められる場合は、関数リテラルを 1 行で書ける。複数行の処理は少し複雑になるが、考え方は同じである。&lt;/p&gt;
&lt;p&gt;クロージャや関数リテラルは最初は難しく見えるかもしれない。関数を値として扱う仕組みだと理解し、例を変更しながら試してみよう。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | プロトコルと拡張</title>
      <link>https://www.devkuma.com/jp/docs/swift/%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-%EB%B0%8F-%ED%99%95%EC%9E%A5/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-%EB%B0%8F-%ED%99%95%EC%9E%A5/</guid>
      <description>
        
        
        &lt;p&gt;Swift にはクラスの拡張に役立つ機能が含まれている。プロトコルはメソッドの実装を必須とし、拡張は後からメソッドを追加する。ここでは、この二つを組み合わせる方法について説明する。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | プロトコルと拡張 | 拡張</title>
      <link>https://www.devkuma.com/jp/docs/swift/%ED%99%95%EC%9E%A5-extension/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%ED%99%95%EC%9E%A5-extension/</guid>
      <description>
        
        
        &lt;p&gt;プロトコルはクラスにメソッドの実装を求めるものだった。拡張は、既存のクラスにメソッドを直接追加する機能である。構文は簡単である。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;extension クラス名 {
    ...... 追加する内容 ......
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;クラス名&lt;/code&gt; には機能を追加するクラスを指定する。&lt;/p&gt;
&lt;p&gt;メソッドだけでなくプロパティも追加できる。ただし、追加できるのは &lt;code&gt;get&lt;/code&gt; や &lt;code&gt;set&lt;/code&gt; の処理を定義する計算型プロパティだけである。&lt;/p&gt;
&lt;p&gt;拡張は自作クラスだけでなく、Swift の標準ライブラリや iOS フレームワークが提供するクラスにも利用できる。&lt;/p&gt;
&lt;p&gt;たとえば、&lt;code&gt;Int&lt;/code&gt; を拡張し、&lt;code&gt;1&lt;/code&gt; から指定した数までの合計を求める &lt;code&gt;getTotal&lt;/code&gt; メソッドを追加してみよう。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;extension&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Int&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;func&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;getTotal&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;()-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;total&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;Int&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;i&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1.&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;..&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;self&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#000&#34;&gt;total&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;+=&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;i&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;total&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;1234&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#3465a4&#34;&gt;print&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;getTotal&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;extension Int&lt;/code&gt; と記述して &lt;code&gt;Int&lt;/code&gt; 型を拡張している。これにより、すべての &lt;code&gt;Int&lt;/code&gt; 値で &lt;code&gt;getTotal&lt;/code&gt; メソッドを利用できる。&lt;code&gt;var num = 1234&lt;/code&gt; のように作成した通常の変数でも呼び出せる。&lt;code&gt;100&lt;/code&gt; までの合計を求めるなら、&lt;code&gt;100.getTotal()&lt;/code&gt; を実行すればよい。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Int&lt;/code&gt; や &lt;code&gt;String&lt;/code&gt; のような Swift の基本的な型にも、拡張を使って簡単に機能を追加できる。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift 入門 | プロトコルと拡張 | プロトコルと拡張の組み合わせ</title>
      <link>https://www.devkuma.com/jp/docs/swift/%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C%EA%B3%BC-%ED%99%95%EC%9E%A5%EC%9D%84-%EA%B2%B0%ED%95%A9/</link>
      <pubDate>Sun, 24 Sep 2017 21:56:54 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/swift/%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C%EA%B3%BC-%ED%99%95%EC%9E%A5%EC%9D%84-%EA%B2%B0%ED%95%A9/</guid>
      <description>
        
        
        &lt;p&gt;プロトコルと拡張を組み合わせると、便利な設計ができる。&lt;/p&gt;
&lt;p&gt;拡張はメソッドやプロパティだけでなく、プロトコルも追加できる。複数の既存の型に共通の機能を実装し、まとめて処理できる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-swift&#34; data-lang=&#34;swift&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;protocol&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;MyDataPrintable&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;func&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;printData&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;extension&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;String&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;MyDataPrintable&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;func&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;printData&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;()&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#3465a4&#34;&gt;print&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;문자열 : &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;\(&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;self&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;.&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;extension&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;Int&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;MyDataPrintable&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;func&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;printData&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;()&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#3465a4&#34;&gt;print&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;(&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;숫자 : &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;\(&lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;self&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;.&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;str&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Hello&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt; &lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;12345&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;str&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;printData&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;num&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;printData&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;この例では、&lt;code&gt;printData&lt;/code&gt; メソッドを持つ &lt;code&gt;MyDataPrintable&lt;/code&gt; プロトコルを宣言している。続いて拡張を使い、&lt;code&gt;String&lt;/code&gt; と &lt;code&gt;Int&lt;/code&gt; にプロトコルへの準拠を追加している。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;extension String: MyDataPrintable {...}
extension Int: MyDataPrintable {...}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;すべての &lt;code&gt;String&lt;/code&gt; 値と &lt;code&gt;Int&lt;/code&gt; 値を &lt;code&gt;MyDataPrintable&lt;/code&gt; として扱える。異なる型を同じプロトコルを通じて統一的に処理できる。&lt;/p&gt;
&lt;p&gt;プロトコルと拡張は、自作クラスを強化するだけではない。Swift に含まれる型を独自にカスタマイズすることもできる。&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
  </channel>
</rss>
