# Swift Apprentice: Fundamentals

**URL:** https://forums.kodeco.com/c/books/swift-apprentice-fundamentals/96.md

[Latest](https://forums.kodeco.com/latest.md) · [Categories](https://forums.kodeco.com/categories.md) · [Tags](https://forums.kodeco.com/tags.md)

---

## [About the Swift Apprentice: Fundamentals category](https://forums.kodeco.com/t/about-the-swift-apprentice-fundamentals-category/184552)

<div class="topic-metadata">

**Author:** [@jellodiil](https://forums.kodeco.com/u/jellodiil)\
**Replies:** 0

</div>

This is the official forum for our book, Swift Apprentice: Fundamentals, available here: https://www.kodeco.com/books/swift-apprentice-fundamentals

---

## [Chapter 17 - Protocols](https://forums.kodeco.com/t/chapter-17-protocols/205502)

<div class="topic-metadata">

**Author:** [@hupple](https://forums.kodeco.com/u/hupple)\
**Replies:** 1\
**Last updated:** [July 22, 2024, 11:50am UTC](https://forums.kodeco.com/t/chapter-17-protocols/205502 "2024-07-22T11:50:58Z")

</div>

Hi students, does anyone know why I have this error “Cannot convert value of type ‘\[any Vehicle.Type\]’ to expected argument type ‘\[any Vehicle\]’” with my code: protocol Vehicle { // the abstract form of the ve…

---

## [No download link for 2nd edition](https://forums.kodeco.com/t/no-download-link-for-2nd-edition/211480)

<div class="topic-metadata">

**Author:** [@freedom](https://forums.kodeco.com/u/freedom)\
**Replies:** 3\
**Last updated:** [July 14, 2025, 12:43pm UTC](https://forums.kodeco.com/t/no-download-link-for-2nd-edition/211480 "2025-07-14T12:43:14Z")

</div>

Hi, In 2024, I bought the 1st edition of Swift Apprentice: Fundamentals, but I do not see download link for PDF version of the 2nd edition? Any help?

---

## [Second edition code is there but could not find book anywhere](https://forums.kodeco.com/t/second-edition-code-is-there-but-could-not-find-book-anywhere/210825)

<div class="topic-metadata">

**Author:** [@ndpiparava](https://forums.kodeco.com/u/ndpiparava)\
**Replies:** 1\
**Last updated:** [April 22, 2025, 10:49pm UTC](https://forums.kodeco.com/t/second-edition-code-is-there-but-could-not-find-book-anywhere/210825 "2025-04-22T22:49:27Z")

</div>

Hello, I have purchased this book and I could not find 2nd edition of this book anywhere while git has already update code Do anyone know how we can get 2nd edition updated book? Thanks Nitin

---

## [Errata for Swift Apprentice: Fundamentals 2nd Edition](https://forums.kodeco.com/t/errata-for-swift-apprentice-fundamentals-2nd-edition/210917)

<div class="topic-metadata">

**Author:** [@jellodiil](https://forums.kodeco.com/u/jellodiil)\
**Replies:** 0\
**Last updated:** [April 23, 2025, 12:00am UTC](https://forums.kodeco.com/t/errata-for-swift-apprentice-fundamentals-2nd-edition/210917 "2025-04-23T00:00:45Z")

</div>

Creating this topic to catch any typos and bugs in the 2nd Edition of Swift Apprentice: Fundamentals.

---

## [Are new updates coming this 2025?](https://forums.kodeco.com/t/are-new-updates-coming-this-2025/210195)

<div class="topic-metadata">

**Author:** [@fdorado985](https://forums.kodeco.com/u/fdorado985)\
**Replies:** 3\
**Last updated:** [February 27, 2025, 8:22pm UTC](https://forums.kodeco.com/t/are-new-updates-coming-this-2025/210195 "2025-02-27T20:22:37Z")

</div>

I see following 2 books with a whole new update UIKit Apprentice Data Structures and Algorithms in Swift Does this mean getting back the book updates learning path again? Are there plans to update Swift Apprentice Fu…

---

## [Closure examples don't compile](https://forums.kodeco.com/t/closure-examples-dont-compile/206910)

<div class="topic-metadata">

**Author:** [@joshuk](https://forums.kodeco.com/u/joshuk)\
**Replies:** 1\
**Last updated:** [October 20, 2024, 3:01am UTC](https://forums.kodeco.com/t/closure-examples-dont-compile/206910 "2024-10-20T03:01:06Z")

</div>

None of these examples compile. var multiplyClosure = { (a, b) in a \* b } and var multiplyClosure = { $0 \* $1 } Ambiguous use of operator ‘\*’ - is the error

---

## [Does this book replace Swift Apprentice?](https://forums.kodeco.com/t/does-this-book-replace-swift-apprentice/184754)

<div class="topic-metadata">

**Author:** [@romtho](https://forums.kodeco.com/u/romtho)\
**Replies:** 3\
**Last updated:** [January 29, 2024, 10:41am UTC](https://forums.kodeco.com/t/does-this-book-replace-swift-apprentice/184754 "2024-01-29T10:41:27Z")

</div>

Hello, does this book replace Swift Apprentice? If so, do the members who bought Swift Apprentice receive this or do our Swift Apprentice updates end with the 2021 release?

---

## [Page not found - BBC](https://forums.kodeco.com/t/page-not-found-bbc/199854)

<div class="topic-metadata">

**Author:** [@abilgin88](https://forums.kodeco.com/u/abilgin88)\
**Replies:** 1\
**Last updated:** [November 30, 2023, 8:20pm UTC](https://forums.kodeco.com/t/page-not-found-bbc/199854 "2023-11-30T20:20:47Z")

</div>

Note: If you’re mathematically astute, you might notice that this example computes triangle numbers. Here’s a quick explanation: http://bbc.in/1O89TGP the link is not provide anything about like " Sorry, but we’re havin…

---

## [CPU Instructions —\> numbers?…](https://forums.kodeco.com/t/cpu-instructions-numbers/198670)

<div class="topic-metadata">

**Author:** [@ceramo89](https://forums.kodeco.com/u/ceramo89)\
**Replies:** 3\
**Last updated:** [October 30, 2023, 4:26pm UTC](https://forums.kodeco.com/t/cpu-instructions-numbers/198670 "2023-10-30T16:26:52Z")

</div>

Hope this’ staying well enough on topic!.. I get sidetracked easily, apologies. I’ve been trying to hold on to the following sentence going through the beginning of this book trying to simply put this concept ( my words…

---

## [How a Computer Works - S1/C1](https://forums.kodeco.com/t/how-a-computer-works-s1-c1/198137)

<div class="topic-metadata">

**Author:** [@ceramo89](https://forums.kodeco.com/u/ceramo89)\
**Replies:** 2\
**Last updated:** [October 18, 2023, 5:07pm UTC](https://forums.kodeco.com/t/how-a-computer-works-s1-c1/198137 "2023-10-18T17:07:54Z")

</div>

I’ve got a question regarding the following sentence in this part of the book ( subject ) : ‘This capability allows the CPU to work with large amounts of data that wouldn’t all fit in the bank of registers.’ ( within th…

---

## [How to "compose" regexes when writing literals?](https://forums.kodeco.com/t/how-to-compose-regexes-when-writing-literals/196975)

<div class="topic-metadata">

**Author:** [@exchessplayerh](https://forums.kodeco.com/u/exchessplayerh)\
**Replies:** 1\
**Last updated:** [October 18, 2023, 3:49pm UTC](https://forums.kodeco.com/t/how-to-compose-regexes-when-writing-literals/196975 "2023-10-18T15:49:10Z")

</div>

Suppose one use a regex as a building block. When using RegexBuilder, one just writes Regex {…}. My question is whether it is possible to do this when writing regex literals.

---

## [Regex Builder Regex](https://forums.kodeco.com/t/regex-builder-regex/189809)

<div class="topic-metadata">

**Author:** [@abil02](https://forums.kodeco.com/u/abil02)\
**Replies:** 3\
**Last updated:** [July 26, 2023, 10:22am UTC](https://forums.kodeco.com/t/regex-builder-regex/189809 "2023-07-26T10:22:25Z")

</div>

Are there any differences between: From apple xcode → refactor " Convert to Regex Builder" let lowercaseLetters = Regex { ZeroOrMore(("a"..."z")) } From the book structure: let RBlowercaseLetters = Regex { Z…

---

## [Chapter 9: Possible errata in Converting Indexes Between Encoding Views section](https://forums.kodeco.com/t/chapter-9-possible-errata-in-converting-indexes-between-encoding-views-section/189044)

<div class="topic-metadata">

**Author:** [@rodaguilera](https://forums.kodeco.com/u/rodaguilera)\
**Replies:** 0\
**Last updated:** [July 5, 2023, 11:41pm UTC](https://forums.kodeco.com/t/chapter-9-possible-errata-in-converting-indexes-between-encoding-views-section/189044 "2023-07-05T23:41:01Z")

</div>

The Xcode compiler advised unwrapping the optional (\[arrowIndex!\]) in the code below Converting Indexes Between Encoding Views As you saw earlier, you use indexes to access grapheme clusters in a string. For example, u…

---

## [What do these two key points mean at the end of Chapter 17, Protocols?](https://forums.kodeco.com/t/what-do-these-two-key-points-mean-at-the-end-of-chapter-17-protocols/188670)

<div class="topic-metadata">

**Author:** [@1097278366](https://forums.kodeco.com/u/1097278366)\
**Replies:** 7\
**Last updated:** [June 28, 2023, 5:10am UTC](https://forums.kodeco.com/t/what-do-these-two-key-points-mean-at-the-end-of-chapter-17-protocols/188670 "2023-06-28T05:10:49Z")

</div>

If you create an extension on a protocol that isn’t declared in the protocol, conforming types cannot override the extension. If you create an implementation in an extension declared in the protocol, conforming types ca…

---

## [Chapter Seven: Collections. Is ArraySlice and Array\<String\>.SubSequence are the same?](https://forums.kodeco.com/t/chapter-seven-collections-is-arrayslice-and-array-string-subsequence-are-the-same/186711)

<div class="topic-metadata">

**Author:** [@dmtreaqq](https://forums.kodeco.com/u/dmtreaqq)\
**Replies:** 0\
**Last updated:** [April 27, 2023, 7:20am UTC](https://forums.kodeco.com/t/chapter-seven-collections-is-arrayslice-and-array-string-subsequence-are-the-same/186711 "2023-04-27T07:20:15Z")

</div>

In this chapter, we have a topic about “Using Countable Ranges to Make an ArraySlice” We have this code below let upcomingPlayersSlice = players\[1...2\] print(upcomingPlayersSlice\[1\], upcomingPlayersSlice\[2\]) // \> "Bob …

---

## [Control Flow Challenge Five](https://forums.kodeco.com/t/control-flow-challenge-five/186408)

<div class="topic-metadata">

**Author:** [@dmtreaqq](https://forums.kodeco.com/u/dmtreaqq)\
**Replies:** 1\
**Last updated:** [April 18, 2023, 6:10pm UTC](https://forums.kodeco.com/t/control-flow-challenge-five/186408 "2023-04-18T18:10:38Z")

</div>

Hello! Actually, I didn’t understand what exactly should I do here. “Given a number, determine the next power of two greater than or equal to that number.” I understand what is the power of two) What does it mean next, …

---

## [Control Flow Challenge One](https://forums.kodeco.com/t/control-flow-challenge-one/184764)

<div class="topic-metadata">

**Author:** [@matrausc](https://forums.kodeco.com/u/matrausc)\
**Replies:** 2\
**Last updated:** [March 6, 2023, 3:40pm UTC](https://forums.kodeco.com/t/control-flow-challenge-one/184764 "2023-03-06T15:40:46Z")

</div>

I cannot seem to figure this out. I’ve eliminated the error, but I’m having trouble assigning the new value to lastName. Anyone know what I’m missing? let firstName = “Matt” var lastName = “” if firstName == “Matt” { …

---

## [Errata for Swift Apprentice: Fundamentals 1st Edition](https://forums.kodeco.com/t/errata-for-swift-apprentice-fundamentals-1st-edition/184558)

<div class="topic-metadata">

**Author:** [@jellodiil](https://forums.kodeco.com/u/jellodiil)\
**Replies:** 0\
**Last updated:** [March 1, 2023, 12:01am UTC](https://forums.kodeco.com/t/errata-for-swift-apprentice-fundamentals-1st-edition/184558 "2023-03-01T00:01:09Z")

</div>

Creating this topic to catch any typos and bugs in the 1st Edition of Swift Apprentice: Fundamentals.
