<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>devkuma – Swift</title>
    <link>https://www.devkuma.com/en/tags/swift/</link>
    <image>
      <url>https://www.devkuma.com/en/tags/swift/logo/180x180.jpg</url>
      <title>Swift</title>
      <link>https://www.devkuma.com/en/tags/swift/</link>
    </image>
    <description>Recent content in Swift on devkuma</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</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/en/tags/swift/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Introduction to Swift | Preparing to Use Swift</title>
      <link>https://www.devkuma.com/en/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/en/docs/swift/swift-%EC%82%AC%EC%9A%A9-%EC%A4%80%EB%B9%84/</guid>
      <description>
        
        
        &lt;p&gt;Swift is used with Apple&amp;rsquo;s official development environment, Xcode. This section explains how to prepare the environment and run a simple program.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift Introduction | Preparing to Use Swift | What Is Swift?</title>
      <link>https://www.devkuma.com/en/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/en/docs/swift/swift-%EC%8A%A4%EC%9C%84%ED%94%84%ED%8A%B8%EB%9E%80/</guid>
      <description>
        
        
        &lt;p&gt;Swift is a completely new programming language that Apple announced at its developer conference in June 2014.&lt;/p&gt;
&lt;p&gt;Previously, developers used a programming language called Objective-C to create macOS and iOS apps for devices such as the iPhone and iPad. This was rooted in the origins of macOS.&lt;/p&gt;
&lt;p&gt;macOS is based on an earlier operating system called NeXTSTEP. NeXTSTEP was originally created as a platform for writing and running programs in the powerful object-oriented language Objective-C. Objective-C and NeXTSTEP were closely connected. NeXT, the company that developed NeXTSTEP, was led by Steve Jobs.&lt;/p&gt;
&lt;p&gt;When Steve Jobs returned to Apple, NeXTSTEP also moved to Apple and became the foundation of macOS. Its appearance became more Mac-like, but its internals were based on NeXTSTEP. As a result, macOS was designed around Objective-C programs.&lt;/p&gt;
&lt;p&gt;That underlying assumption has not disappeared. macOS and iOS include frameworks originally prepared for Objective-C, and applications run by using those frameworks. This explains why Mac and iPhone development historically required Objective-C: the operating systems were designed with Objective-C in mind.&lt;/p&gt;
&lt;p&gt;Objective-C is not an easy language to understand. It combines C with ideas from Smalltalk, an early object-oriented language, so its syntax can feel like two languages living side by side. As C++, Java, C#, and other languages with more familiar syntax became mainstream, Objective-C increasingly came to be regarded as unusual and difficult to learn.&lt;/p&gt;
&lt;p&gt;As Macs and iPhones became popular, many developers wanted to build applications for them. Many of those developers found Objective-C difficult to approach and wanted a more understandable language.&lt;/p&gt;
&lt;p&gt;That situation was not ideal for Apple either. Apple therefore introduced a new language designed to be easier to learn, understand, and use: Swift.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift Introduction | Preparing to Use Swift | Swift Features</title>
      <link>https://www.devkuma.com/en/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/en/docs/swift/swift-%ED%8A%B9%EC%A7%95/</guid>
      <description>
        
        
        &lt;p&gt;What kind of language is Swift? This article summarizes its features.&lt;/p&gt;
&lt;h2 id=&#34;a-modern-language&#34;&gt;A Modern Language&lt;/h2&gt;
&lt;p&gt;Objective-C did not support many convenient features adopted by modern languages. Swift provides language features that were not available in Objective-C, including closures, which let you handle a process like a value, and generics, which let you work with different kinds of values.&lt;/p&gt;
&lt;h2 id=&#34;a-safer-language&#34;&gt;A Safer Language&lt;/h2&gt;
&lt;p&gt;Swift has syntax designed to remove common sources of bugs from code. For example, variables must be initialized, optional values explicitly represent the absence of an object, variables have types from the beginning, and control-flow bodies must be enclosed in braces. These features help prevent accidental mistakes.&lt;/p&gt;
&lt;h2 id=&#34;an-interactive-language&#34;&gt;An Interactive Language&lt;/h2&gt;
&lt;p&gt;Swift is a compiled language. You can compile a program in advance into binary code that a computer executes directly. Swift can also run interactively. Xcode provides a playground where you can write and run statements immediately. We will use this approach to learn the basics of Swift.&lt;/p&gt;
&lt;h2 id=&#34;fast-execution&#34;&gt;Fast Execution&lt;/h2&gt;
&lt;p&gt;Because Swift includes many convenient features, you might assume that Objective-C applications run faster. However, Apple stated that programs written in Swift could run faster than Objective-C programs.&lt;/p&gt;
&lt;p&gt;Other programmers identified bottlenecks in early versions of Swift, so it was not always possible to state that Swift was faster than Objective-C. Its performance was expected to improve as the language matured.&lt;/p&gt;
&lt;h2 id=&#34;the-same-objective-c-backbone&#34;&gt;The Same Objective-C Backbone&lt;/h2&gt;
&lt;p&gt;Objective-C was used on macOS and iOS because the operating systems were optimized for it. The appearance of a new language such as Swift does not change that foundation. Frameworks built into macOS and iOS were created for Objective-C, and Swift uses them directly. Although the language is new, Swift developers use many of the same operating-system features that Objective-C developers used. You do not need to learn every platform feature again from the beginning. Much of your Objective-C knowledge remains useful.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift Introduction | Preparing to Use Swift | Setting Up Swift</title>
      <link>https://www.devkuma.com/en/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/en/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;Let us set up an environment for using Swift. Swift is supported by Apple&amp;rsquo;s Xcode development environment starting with Xcode 6. Xcode 6 was released in the fall of 2014, and Xcode 7 was available when this article was written in September 2017.&lt;/p&gt;
&lt;p&gt;You can install Xcode from the App Store or download it from Apple&amp;rsquo;s developer website. Download availability from the developer website may depend on your Apple Developer Program membership.&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;If you download Xcode from Apple&amp;rsquo;s developer website, mount the disk image (&lt;code&gt;.dmg&lt;/code&gt;) and copy Xcode to install it.&lt;/p&gt;
&lt;p&gt;The first launch may take some time because Xcode sets up required components. If a dialog asks you to install components, complete the installation. Once Xcode starts correctly, installation is complete.&lt;/p&gt;
&lt;h2 id=&#34;using-a-playground&#34;&gt;Using a Playground&lt;/h2&gt;
&lt;p&gt;After launching Xcode, create a playground. A playground is a special file that lets you run Swift programs immediately.&lt;/p&gt;
&lt;p&gt;In the Welcome window that appears when Xcode starts, click &amp;ldquo;Get started with a playground.&amp;rdquo; In the dialog, enter a program or file name in Name and select &amp;ldquo;OS X&amp;rdquo; for Platform. Choose a folder and save the file. A playground window appears, ready for use.&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 Introduction | Preparing to Use Swift | Running a Playground</title>
      <link>https://www.devkuma.com/en/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/en/docs/swift/xcode-playground/</guid>
      <description>
        
        
        &lt;p&gt;A newly created playground contains a few simple statements by default. Let us understand what they mean.&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;importing-a-library&#34;&gt;Importing a Library&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;This imports the Cocoa framework. macOS and iOS include Cocoa, a framework for working with operating-system features. The &lt;code&gt;import&lt;/code&gt; statement loads a specified library so that your program can use it.&lt;/p&gt;
&lt;h2 id=&#34;using-a-variable&#34;&gt;Using a Variable&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;This statement contains several elements. First, &lt;code&gt;var str&lt;/code&gt; creates a variable named &lt;code&gt;str&lt;/code&gt;. The text value is written inside double quotation marks.&lt;/p&gt;
&lt;p&gt;The text &lt;code&gt;&amp;quot;Hello, playground&amp;quot;&lt;/code&gt; displayed to the right of the editor is the result of executing the &lt;code&gt;var str&lt;/code&gt; statement.&lt;/p&gt;
&lt;p&gt;A playground immediately displays the result of each statement. For example, when you create a variable and assign a value, the stored value appears on the right. This is a convenient feature.&lt;/p&gt;
&lt;p&gt;Using a playground, you can write a program incrementally and inspect the result immediately. You now have an environment for trying Swift.&lt;/p&gt;
&lt;p&gt;The following articles use a playground to explain basic Swift syntax.&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>Introduction to Swift | Values, Variables, and Operations</title>
      <link>https://www.devkuma.com/en/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/en/docs/swift/%EA%B0%92-%EB%B3%80%EC%88%98-%EC%97%B0%EC%82%B0/</guid>
      <description>
        
        
        &lt;p&gt;The basics of programming are values, variables, and operations. This section starts with these fundamental concepts.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Introduction to Swift | Control Statements</title>
      <link>https://www.devkuma.com/en/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/en/docs/swift/%EC%A0%9C%EC%96%B4-%EA%B5%AC%EB%AC%B8/</guid>
      <description>
        
        
        &lt;p&gt;Control statements are essential for writing complex programs. This section explains the four basic statements: if, switch, for, and while.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Introduction to Swift | Control Statements | Repetition with while</title>
      <link>https://www.devkuma.com/en/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/en/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;A &lt;code&gt;for&lt;/code&gt; statement includes a mechanism that changes on each iteration. There is also a simpler loop statement that only checks a condition to decide whether to repeat a process. This is the &lt;code&gt;while&lt;/code&gt; statement.&lt;/p&gt;
&lt;p&gt;There are two ways to write a &lt;code&gt;while&lt;/code&gt; loop, depending on where the condition appears. The latter is also called a &lt;code&gt;do while&lt;/code&gt; statement.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Basic form of 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:#000&#34;&gt;condition&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:#000&#34;&gt;repeated&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;processing&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;Basic form of 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:#000&#34;&gt;repeated&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;processing&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:#000&#34;&gt;condition&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Write the condition after &lt;code&gt;while&lt;/code&gt;. If the condition is &lt;code&gt;true&lt;/code&gt;, the loop runs. When it becomes &lt;code&gt;false&lt;/code&gt;, execution exits the loop.&lt;/p&gt;
&lt;p&gt;Why are there two forms for such a simple operation? The difference is when the condition is checked. The first form, with &lt;code&gt;while&lt;/code&gt; at the beginning, checks the condition before executing the block inside &lt;code&gt;{}&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The second form, with &lt;code&gt;while&lt;/code&gt; at the end, executes the block first and checks the condition afterward. As a result, the block runs at least once even if the condition is initially &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Compare the following simple loops.&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;The first loop produces values in the form &lt;code&gt;index:1&lt;/code&gt; through &lt;code&gt;index:10&lt;/code&gt;. The second loop produces &lt;code&gt;index:0&lt;/code&gt; through &lt;code&gt;index:9&lt;/code&gt;. Because the variable is incremented with &lt;code&gt;++&lt;/code&gt; in the condition, the values differ depending on whether the condition appears before or after the block.&lt;/p&gt;
&lt;p&gt;As this example shows, the two forms behave slightly differently in subtle cases. As a general rule, use &lt;code&gt;while&lt;/code&gt; by default and reserve &lt;code&gt;do while&lt;/code&gt; for situations that require it.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Introduction to Swift | Functions</title>
      <link>https://www.devkuma.com/en/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/en/docs/swift/%ED%95%A8%EC%88%98/</guid>
      <description>
        
        
        &lt;p&gt;Functions group processing so it can be called when needed. They are an important feature for structuring programs. Swift functions are designed to be convenient even in their details and include distinctive features.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift Introduction | Functions | Defining and Using Functions</title>
      <link>https://www.devkuma.com/en/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/en/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;The examples so far have executed statements sequentially, but real programs are more complex.&lt;/p&gt;
&lt;p&gt;Group reusable processes so that they can be called whenever needed. A function provides this capability.&lt;/p&gt;
&lt;p&gt;In Swift, define and call a function as follows.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;func functionName(arguments) -&amp;gt; ReturnType {
    ...... process to perform ......
    return value
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Specify arguments inside parentheses after the function name. Write each argument as a name and type pair, such as &lt;code&gt;variableName:Type&lt;/code&gt;. Separate multiple arguments with commas.&lt;/p&gt;
&lt;p&gt;After &lt;code&gt;-&amp;gt;&lt;/code&gt;, specify the return type. If the function does not return a value, specify &lt;code&gt;Void&lt;/code&gt; or omit the return type. Swift then treats it as &lt;code&gt;Void&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Use &lt;code&gt;return&lt;/code&gt; to return a value. A function returning &lt;code&gt;Void&lt;/code&gt; does not need &lt;code&gt;return&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The following is a simple example.&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;This code declares and calls &lt;code&gt;calc&lt;/code&gt;, a function that receives an integer and returns the sum from &lt;code&gt;1&lt;/code&gt; through that value. The declaration &lt;code&gt;calc(num:Int)&lt;/code&gt; shows that the function receives one &lt;code&gt;Int&lt;/code&gt; argument. The &lt;code&gt;-&amp;gt; Int&lt;/code&gt; declaration shows that it returns an &lt;code&gt;Int&lt;/code&gt;.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift</title>
      <link>https://www.devkuma.com/en/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/en/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 is a programming language developed for creating macOS and iOS applications for devices such as the iPhone and iPad. Learn the basics of Swift and start developing apps.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift Introduction | Functions | Default Argument Values</title>
      <link>https://www.devkuma.com/en/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/en/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;There are additional features to learn about function arguments. This article explains default values.&lt;/p&gt;
&lt;p&gt;You can specify a default value for a function argument in advance. Assign a value to the argument variable with an equals sign (&lt;code&gt;=&lt;/code&gt;), as shown below.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;func functionName(argumentName:Type = defaultValue)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;When you specify a default value, the argument name automatically becomes an external name that can be provided by the caller. There is no need to add a hash sign (&lt;code&gt;#&lt;/code&gt;) as a shorthand declaration.&lt;/p&gt;
&lt;p&gt;Specifying a default value means that the argument can be omitted. When calling the function, the argument may or may not be present. To make it clear which argument is being passed, an argument with a default value uses an external name.&lt;/p&gt;
&lt;p&gt;The following example uses a default value.&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;If you omit the &lt;code&gt;rate&lt;/code&gt; argument, Swift automatically uses &lt;code&gt;0.08&lt;/code&gt;.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift Introduction | Functions | Variadic Parameters</title>
      <link>https://www.devkuma.com/en/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/en/docs/swift/%EA%B0%80%EB%B3%80-%EC%9D%B8%EC%88%98/</guid>
      <description>
        
        
        &lt;p&gt;Use a variadic parameter when you do not know how many values will be passed to a function.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;(argumentName:Type...)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Callers can provide multiple comma-separated values for this parameter. The function receives those values as an array. You can think of a variadic parameter as an array parameter.&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;The declaration is:&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;The call is:&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;Multiple values are passed through &lt;code&gt;nums&lt;/code&gt;. Inside the function, iterate over them with &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;The number of elements in a variadic parameter is not fixed. Processing it with a &lt;code&gt;for&lt;/code&gt; statement is the usual approach.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift Introduction | Functions | inout Arguments</title>
      <link>https://www.devkuma.com/en/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/en/docs/swift/inout-%EC%9D%B8%EC%88%98/</guid>
      <description>
        
        
        &lt;p&gt;Another Swift function feature to learn is the &lt;code&gt;inout&lt;/code&gt; argument. This special argument lets a function modify the argument itself. Add &lt;code&gt;inout&lt;/code&gt; before the argument.&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:#000&#34;&gt;argumentName&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;Type&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;When passing a variable to an &lt;code&gt;inout&lt;/code&gt; argument, add &lt;code&gt;&amp;amp;&lt;/code&gt; before the variable name. You cannot pass a literal because a literal cannot be modified.&lt;/p&gt;
&lt;p&gt;The following is an example of an &lt;code&gt;inout&lt;/code&gt; argument.&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;The function is declared as follows.&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;The first argument, &lt;code&gt;price&lt;/code&gt;, is an &lt;code&gt;inout&lt;/code&gt; argument. The return type is &lt;code&gt;Void&lt;/code&gt;. The function call is as follows.&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;This directly changes the value of &lt;code&gt;num&lt;/code&gt;. Functions usually return values, but an &lt;code&gt;inout&lt;/code&gt; argument lets a function modify the value stored in a variable directly.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Introduction to Swift | Class Basics</title>
      <link>https://www.devkuma.com/en/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/en/docs/swift/%ED%81%B4%EB%9E%98%EC%8A%A4-%EA%B8%B0%EB%B3%B8/</guid>
      <description>
        
        
        &lt;p&gt;In object-oriented languages, you define classes to create and use objects. This section explains the basic usage of classes, as well as inheritance, overrides, computed properties, type properties, and type methods.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift Introduction | Class Basics | Initializers</title>
      <link>https://www.devkuma.com/en/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/en/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;Until now, instances have been created without arguments, as in &lt;code&gt;Helo()&lt;/code&gt;. It is convenient to pass required values when creating an instance.&lt;/p&gt;
&lt;p&gt;Use an initializer for this purpose. An initializer is a special method that runs automatically when an instance is created. Define it as follows.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;init(arguments) {
    ...... initialization process ......
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Do not write &lt;code&gt;func init&lt;/code&gt;. Write only &lt;code&gt;init&lt;/code&gt;. An initializer is a special method and does not require &lt;code&gt;func&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Declare arguments inside the parentheses to pass values when creating an instance. The following is a simple example.&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;The &lt;code&gt;Helo&lt;/code&gt; class defines an initializer in the form &lt;code&gt;init(name:String)&lt;/code&gt;. Create an instance by passing an argument, as in &lt;code&gt;Helo(name:&amp;quot;Taro&amp;quot;)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Inside the initializer, &lt;code&gt;self.name&lt;/code&gt; assigns the argument &lt;code&gt;name&lt;/code&gt; to the &lt;code&gt;name&lt;/code&gt; property of the &lt;code&gt;Helo&lt;/code&gt; class. The special value &lt;code&gt;self&lt;/code&gt; represents the instance itself. This syntax refers to the &lt;code&gt;name&lt;/code&gt; property of the current instance and is frequently used in class definitions.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift Introduction | Class Basics | Type Properties and Type Methods</title>
      <link>https://www.devkuma.com/en/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/en/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;Ordinary properties and methods require an instance. A class can also provide properties and methods that you use directly through the class. These are called type properties and type methods.&lt;/p&gt;
&lt;p&gt;To declare type properties and type methods, add the &lt;code&gt;class&lt;/code&gt; modifier. You can then call them directly through the class.&lt;/p&gt;
&lt;p&gt;Keep the following points in mind when using type properties and type methods.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A type property can be a computed property. An ordinary stored property is not available. Because there is no class-level stored variable, a setter for a computed property also has limited use.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A type method can use only type methods and type properties. It cannot use ordinary properties and methods that belong to instances.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following is an example.&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;This example defines an &lt;code&gt;Exchange&lt;/code&gt; class that converts won to dollars and dollars to won. It provides the &lt;code&gt;rate&lt;/code&gt; type property and two type methods for the calculations. A class centered on calculations can be used efficiently through type methods because there is no need to create an instance each time.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Introduction to Swift | Arrays and Dictionaries</title>
      <link>https://www.devkuma.com/en/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/en/docs/swift/%EB%B0%B0%EC%97%B4%EA%B3%BC-%EC%82%AC%EC%A0%84/</guid>
      <description>
        
        
        &lt;p&gt;Arrays and dictionaries manage multiple values together. This section explains their basic usage.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift Introduction | Arrays and Dictionaries | Array Basics</title>
      <link>https://www.devkuma.com/en/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/en/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;An array manages multiple values together. It stores values of the same type and assigns each storage location an index starting at &lt;code&gt;0&lt;/code&gt;. Use an index to retrieve or replace a value.&lt;/p&gt;
&lt;p&gt;An array is created with a specified number of storage locations. An array with ten elements has indexes from &lt;code&gt;0&lt;/code&gt; through &lt;code&gt;9&lt;/code&gt;, not &lt;code&gt;1&lt;/code&gt; through &lt;code&gt;10&lt;/code&gt;. Reading or writing an index outside the allocated range causes an error.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Creating Arrays&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;var variable:Type = [Type]()
var variable:Type = [Type](count: number, repeatedValue: value)
var variable:Type = [value1, value2, ...]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Reading and Writing Values&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;variable = array[index]
array[index] = value
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Write the element type inside square brackets. For example, an array of strings has the type &lt;code&gt;[String]&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Create an empty array with &lt;code&gt;[Type]()&lt;/code&gt;. To create storage locations with an initial value, write:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[Type](count: numberOfLocations, repeatedValue: initialValue)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You can also use an array literal such as &lt;code&gt;[value1, value2, ...]&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;An array literal is convenient for a small number of elements. For ten thousand zero values, &lt;code&gt;(count: 10000, repeatedValue: 0)&lt;/code&gt; is more practical.&lt;/p&gt;
&lt;p&gt;Swift can infer the type when the assigned value makes it clear.&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 Introduction | Arrays and Dictionaries | Arrays and for-in Statements</title>
      <link>https://www.devkuma.com/en/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/en/docs/swift/%EB%B0%B0%EC%97%B4%EA%B3%BC-for-in-%EA%B5%AC%EB%AC%B8/</guid>
      <description>
        
        
        &lt;p&gt;You can retrieve and process array elements one at a time by specifying index numbers. When using an array to manage data, however, you often need to process every element in the same way.&lt;/p&gt;
&lt;p&gt;For this purpose, use a &lt;code&gt;for-in&lt;/code&gt; statement.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;for variable in array {
    ...... process to perform ......
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A &lt;code&gt;for-in&lt;/code&gt; statement retrieves values from an array in order, assigns each value to a variable, and repeatedly executes the code inside the braces. By using that variable in the body, you can perform the same operation on every array element.&lt;/p&gt;
&lt;p&gt;The following is a simple example.&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;This code retrieves every value from the &lt;code&gt;data&lt;/code&gt; array, calculates the sum, and displays it. The statement &lt;code&gt;for num in data&lt;/code&gt; retrieves each value from &lt;code&gt;data&lt;/code&gt; in order and assigns it to &lt;code&gt;num&lt;/code&gt;.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Introduction to Swift | Structures, Enumerations, and Tuples</title>
      <link>https://www.devkuma.com/en/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/en/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 frequently uses values with complex structures. This section explains structures, enumerations, and tuples.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift Introduction | Structures, Enumerations, and Tuples | Tuples</title>
      <link>https://www.devkuma.com/en/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/en/docs/swift/%ED%8A%9C%ED%94%8C-tuple/</guid>
      <description>
        
        
        &lt;p&gt;Tuples have already appeared several times. A tuple groups multiple values, including values of different types, in one place. Write a tuple as follows.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;(value1, value2, ...)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Create a tuple by writing comma-separated values inside parentheses. Retrieve its values by adding a dot and an index to the variable that stores the tuple, such as &lt;code&gt;tuple.1&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Using indexes can cause mistakes if you do not clearly understand the order of the values. Like a dictionary, a tuple can also assign names to its values.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;(key1 : value1, key2 : value2, ...)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For a tuple written in this form, retrieve a value with a key instead of a number, such as &lt;code&gt;tuple.key&lt;/code&gt;. You can think of it as similar to the difference between an array and a dictionary.&lt;/p&gt;
&lt;p&gt;The following example uses tuples.&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;This example provides a function that creates tuples in a fixed format, then creates tuples and displays their values.&lt;/p&gt;
&lt;p&gt;Tuples let you freely choose their value structure. That freedom can make their contents inconsistent, but a function such as this one lets you create tuples with the same format.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Introduction to Swift | Function Literals and Closures</title>
      <link>https://www.devkuma.com/en/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/en/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 provides closures, which allow functions to be handled as values. This section explains closures and how to use functions as values.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift Introduction | Function Literals and Closures | Functions Are Values</title>
      <link>https://www.devkuma.com/en/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/en/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 functions have an important characteristic: they can be treated as values. A function groups together a process, but in Swift the function itself is also a value.&lt;/p&gt;
&lt;p&gt;Run the following simple example.&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;This example defines a function named &lt;code&gt;calc&lt;/code&gt;. It assigns &lt;code&gt;calc&lt;/code&gt; to the variable &lt;code&gt;f1&lt;/code&gt;, then calls &lt;code&gt;f1&lt;/code&gt; with an argument.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;calc&lt;/code&gt; process runs correctly and returns a result. In other words, the &lt;code&gt;calc&lt;/code&gt; function assigned to &lt;code&gt;f1&lt;/code&gt; works as expected.&lt;/p&gt;
&lt;p&gt;Because functions are values, Swift can handle functions in a variety of ways. Remember this key point: a function is a value.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift Introduction | Function Literals and Closures | Closures</title>
      <link>https://www.devkuma.com/en/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/en/docs/swift/%ED%81%B4%EB%A1%9C%EC%A0%80-closure/</guid>
      <description>
        
        
        &lt;p&gt;Now that you understand the basics of functions as values, let us use closures, a central Swift feature.&lt;/p&gt;
&lt;p&gt;A closure lets you pass a function as an argument to another function. Because functions are values, a function can accept another function as an argument.&lt;/p&gt;
&lt;p&gt;This may sound unfamiliar until you see an example.&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;This code defines two functions: &lt;code&gt;calc&lt;/code&gt; and &lt;code&gt;printResult&lt;/code&gt;. As in the previous example, &lt;code&gt;calc&lt;/code&gt; returns the sum of the values from &lt;code&gt;0&lt;/code&gt; through its argument. The &lt;code&gt;printResult&lt;/code&gt; function uses a closure.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;printResult&lt;/code&gt; receives a function and an &lt;code&gt;Int&lt;/code&gt; value. The function type is &lt;code&gt;(num:Int)-&amp;gt;Int&lt;/code&gt;. When you pass &lt;code&gt;calc&lt;/code&gt;, &lt;code&gt;printResult&lt;/code&gt; runs it internally and prints the result.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;printResult&lt;/code&gt; is not limited to printing the result of &lt;code&gt;calc&lt;/code&gt;. You can pass any function that receives an &lt;code&gt;Int&lt;/code&gt; value and returns an &lt;code&gt;Int&lt;/code&gt; value.&lt;/p&gt;
&lt;p&gt;Closures let you separate a process and provide it from outside a function. This is one of their main benefits.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift Introduction | Function Literals and Closures | Function Literals</title>
      <link>https://www.devkuma.com/en/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/en/docs/swift/%ED%95%A8%EC%88%98-%EB%A6%AC%ED%84%B0%EB%9F%B4/</guid>
      <description>
        
        
        &lt;p&gt;Closures require passing a function as a value. You can define a function in advance and pass it as an argument, as in the previous example.&lt;/p&gt;
&lt;p&gt;For a simple process used in only one place, defining a separate function can be unnecessary. Instead, write the function directly as an argument with a function literal.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;{ ... process ... }
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In practice, arguments are commonly included.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;{ arguments in ... process ... }
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Separate multiple arguments with commas. A function literal lets you provide the required function without defining it beforehand.&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;This example calls the previously defined &lt;code&gt;printResult&lt;/code&gt; function. It no longer uses a separate &lt;code&gt;calc&lt;/code&gt; function. Instead, each call provides a function literal directly.&lt;/p&gt;
&lt;p&gt;When the result comes from a single expression, write the literal on one line. Multiline processing is more complex but follows the same principle.&lt;/p&gt;
&lt;p&gt;Closures and function literals may initially seem difficult. Remember that they treat functions as values, and experiment by modifying the examples.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Introduction to Swift | Protocols and Extensions</title>
      <link>https://www.devkuma.com/en/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/en/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 includes features that help extend classes. Protocols require method implementations, and extensions add methods later. This section explains how to combine these two features.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift Introduction | Protocols and Extensions | Extensions</title>
      <link>https://www.devkuma.com/en/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/en/docs/swift/%ED%99%95%EC%9E%A5-extension/</guid>
      <description>
        
        
        &lt;p&gt;A protocol requires a class to implement methods. An extension adds methods directly to an existing class. Its syntax is simple.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;extension ClassName {
    ...... additions ......
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Specify the class to extend as &lt;code&gt;ClassName&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can add properties as well as methods. However, an extension can add only computed properties, which define &lt;code&gt;get&lt;/code&gt; and &lt;code&gt;set&lt;/code&gt; behavior.&lt;/p&gt;
&lt;p&gt;Extensions work with your own classes, classes provided by the Swift standard library, and classes from iOS frameworks.&lt;/p&gt;
&lt;p&gt;For example, extend &lt;code&gt;Int&lt;/code&gt; with a &lt;code&gt;getTotal&lt;/code&gt; method that calculates the sum from &lt;code&gt;1&lt;/code&gt; through a given number.&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;The declaration &lt;code&gt;extension Int&lt;/code&gt; extends the &lt;code&gt;Int&lt;/code&gt; type. Every &lt;code&gt;Int&lt;/code&gt; value can then use the &lt;code&gt;getTotal&lt;/code&gt; method. Even an ordinary variable such as &lt;code&gt;var num = 1234&lt;/code&gt; can call it. To calculate the sum through &lt;code&gt;100&lt;/code&gt;, call &lt;code&gt;100.getTotal()&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Extensions make it easy to add functionality even to fundamental Swift types such as &lt;code&gt;Int&lt;/code&gt; and &lt;code&gt;String&lt;/code&gt;.&lt;/p&gt;

      </description>
      
      <category>Swift</category>
      
    </item>
    
    <item>
      <title>Swift Introduction | Protocols and Extensions | Combining Protocols and Extensions</title>
      <link>https://www.devkuma.com/en/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/en/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;Combining protocols and extensions enables useful designs.&lt;/p&gt;
&lt;p&gt;An extension can add a protocol as well as methods and properties. This lets multiple existing types implement common behavior and be processed together.&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;This example declares the &lt;code&gt;MyDataPrintable&lt;/code&gt; protocol with a &lt;code&gt;printData&lt;/code&gt; method. Extensions then add protocol conformance to &lt;code&gt;String&lt;/code&gt; and &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;Every &lt;code&gt;String&lt;/code&gt; and &lt;code&gt;Int&lt;/code&gt; value can now be treated as &lt;code&gt;MyDataPrintable&lt;/code&gt;. You can process both types uniformly through the same protocol.&lt;/p&gt;
&lt;p&gt;Protocols and extensions do more than improve your own classes. They also let you customize types included with Swift.&lt;/p&gt;

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