exercism / exercism/swift

[v3] Implement new Concept Exercise: initialization

未关闭
#419 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Swift
星标
122
派生
165
PR 合并指标
30 天内没有已合并 PR

描述

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

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。