[v3] Implement new Concept Exercise: initialization
- Dominant language
- Swift
- Stars
- 122
- Forks
- 165
- PR merge metrics
- No merged PRs in 30d
Description
This issue describes how to implement the initialization concept exercise for the Swift track.
## Getting started
**Please please please read the docs before starting.** Posting PRs without reading these docs will be a lot more frustrating for you during the review cycle, and exhaust Exercism's maintainers' time. So, before diving into the implementation, please read the following documents:
- [The features of v3][docs-features-of-v3].
- [Rationale for v3][docs-rationale-for-v3].
- [What are concept exercises and how are they structured?][docs-concept-exercises]
Please also watch the following video:
- [The Anatomy of a Concept Exercise][anatomy-of-a-concept-exercise].
## Goal
This concept exercise should convey a basic understanding of how to perform initialization of structs, classes, and enumerations in Swift.
## Things to teach
- Default property values
- Custom initializers
- Default initializers
- Initialization using a closure or function
## Things not to teach
- Failable initializers
- Delegated initializers
- Convenience initializers
- Required initializers
## Concepts
- `initialization`
## Prerequisites
- `structs-and-classes`
- `enumerations`
## Resources to refer to
### Hints
- [Setting initial values][initial-values]
- [Custom initializers][customizing-initialization]
- [Default initializers][default-initializers]
- [Initializing using closures][initializing-via-closure]
### After
- [Setting initial values][initial-values]
- [Custom initializers][customizing-initialization]
- [Default initializers][default-initializers]
- [Initializing using closures][initializing-via-closure]
## Representer
TBD
## Analyzer
TBD
## Implementing
See [the Swift track implementation guide][swift-implementing-concept-exercises] for guidance.
## Help
If you have any questions while implementing the exercise, please post the questions as comments in this issue.
[swift-implementing-concept-exercises]: https://github.com/wneumann/v3/blob/master/languages/swift/reference/implementing-a-concept-exercise.md
[initial-values]: https://docs.swift.org/swift-book/LanguageGuide/Initialization.html#ID204
[customizing-initialization]: https://docs.swift.org/swift-book/LanguageGuide/Initialization.html#ID207
[default-initializers]: https://docs.swift.org/swift-book/LanguageGuide/Initialization.html#ID213
[initializing-via-closure]: https://docs.swift.org/swift-book/LanguageGuide/Initialization.html#ID232
[docs-concept-exercises]: ../../../docs/concept-exercises.md
[docs-rationale-for-v3]: ../../../docs/rationale-for-v3.md
[docs-features-of-v3]: ../../../docs/features-of-v3.md
[anatomy-of-a-concept-exercise]: https://www.youtube.com/watch?v=gkbBqd7hPrA
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.