プログラミング

284

Swiftでプログラミング-Generics 3

Generic Where Clauses
型制約を使用すると、ジェネリック関数、添え字、または型に関連付けられた型パラメーターの要件を定義できます。

associated typeの要件定義をして便利に使うことが出来ます。これを使うために、ジェネリックwhere句を定義します。ジェネリックwhere句を使用するにははassociated typeを定義して特定のプロトコルに準拠、または特定の型

もっとみる
ありがとうございます!

バージョン管理 Gitを理解しよ - 試して遊ぶ。

GitHubでたくさんのコードが管理してあります。このコードを簡単に試すことができるのでちょっとやってみましょう。わかりすく解説してある動画を見ながら自分なりにやり易い方法でやってみます。GitHubの以下のページを利用させてもらいます。

GoogleのColabで簡単に試すことが出来ます。動画ではGoogleDriveを使って実行していますが、もっと簡単にColab自体のファイル管理のシステム

もっとみる
ありがとうございます!

Swiftでプログラミング-Generics 2

Type Constraints
swapTwoValues(_:_ :)関数と Stack typeは、どの型でも機能します。ただし、ジェネリック関数やジェネリック型で使用できる型に特定の型制約を適用すると便利な場合があります。型制約は、型パラメーターが特定のクラスから継承するか、特定のプロトコルまたはprotocol compositionに準拠する必要があります。

たとえば、Swiftの辞

もっとみる
ありがとうございます!

Swiftでプログラミング-Generics 1

ジェネリックコードを使用すると、定義した要件に応じて、任意の型で機能する柔軟で再利用可能な関数と型を記述できます。 重複を避け、その意図を明確にしながら抽象的な方法で表現するコードを書くことができます。

ジェネリックはSwiftの最も強力な機能の1つであり、Swift標準ライブラリの多くはジェネリックコードで構築されています。  たとえば、Swiftの配列型と辞書型はどちらもジェネリックコレクシ

もっとみる
ありがとうございます!

Swiftでプログラミング-Protocols 3

Adding Protocol Conformance with an Extension 拡張機能を使用したプロトコル準拠の追加
既存の型にアクセスできない場合でも、既存の型を拡張して新しいプロトコルを採用し、準拠させることができます。 拡張機能は、既存の型に新しいプロパティ、メソッド、および添え字を追加し、プロトコルが必要とする要件を追加できます。 

今あるインスタンスの型は、拡張されたイ

もっとみる
ありがとうございます!

Swiftでプログラミング-Protocols 2

Protocols as Types
プロトコル自体は実際には機能を実装していません。 それでも、コードではプロトコルを本格的な型として使用できます。 プロトコルを型として使用することは、"existential type"と呼ばれることもあります。これは、「"T"がプロトコルに準拠するような型"T"が存在する」というフレーズに由来します。

プロトコルは、次のような他のタイプが許可されている多く

もっとみる
ありがとうございます!

SwiftUIでいこう! - Timer処理まとめ。

タイマーを作るときの作り方をまとめ。簡単にXcodeのplaygroundで実行してみます。

import Foundationvar count = 0Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { timer in count += 1 print(count)}

これで、コンソールに1,2,3,・・・とカウ

もっとみる
ありがとうございます!

Swiftでプログラミング-Protocols 1

プロトコルは、特定のタスクまたは機能の一部に適したメソッド、プロパティ、およびその他の要件の青写真を定義します。 次に、プロトコルをクラス、構造、または列挙型で採用して、これらの要件の実際の実装を提供できます。 プロトコルの要件を満たすすべての型は、そのプロトコルに準拠していると言われます。

適合型が実装する必要のある要件を指定することに加えて、プロトコルを拡張して、これらの要件の一部を実装した

もっとみる
ありがとうございます!

Swiftでプログラミング-Extensions

extensionは、既存のクラス、構造、列挙型、またはプロトコルタイプに新しい機能を追加します。 これには、元のソースコードにアクセスできない型を拡張する機能があります(遡及モデリングと呼ばれます)。extensionは、Objective-Cのカテゴリに似ています。 (Objective-Cカテゴリとは異なり、Swiftのextensionには名前がありません。)

Swiftのextensi

もっとみる
ありがとうございます!

Swiftでプログラミング-Nested Types

多くの場合、列挙体は特定のクラスまたは構造体の機能をサポートするために作成されます。 同様に、より複雑な型をコードの内側で使用することを目的にユーティリティクラスと構造体を定義すると便利な場合があります。 これを実現するために、Swiftではネストされた型を定義できます。これにより、サポートする列挙体、クラス、および構造体を、それらがサポートする型の定義を内側に書くことが出来ます。

別の型の内に

もっとみる
ありがとうございます!