Swiftでグローバル変数を素早く作成して使う方法
グローバル変数とは何か
Appleの公式ドキュメントによると、「グローバル変数とは、関数、メソッド、クロージャ、型のいずれのコンテキストの外側で定義された変数のこと」とされています。
グローバル変数の作り方を学ぶ前に、まずはその概念をしっかり理解しておきましょう。

例として、内側の円の中にある「W」を考えてみます。「W」は内側の円の中にあるすべてにアクセスできます。一方、「A」は外側の円の中にあるものすべてに加えて、内側の円の中にあるものにもアクセスできます。つまり「A」のスコープは両方の円にアクセスできるため、グローバルだと言えます。
このように、グローバル変数は大きい円(外側)と小さい円(内側)の両方にあるすべてにアクセスできる変数なのです。
グローバル変数を宣言する方法
それでは、実際にグローバル変数を宣言・作成する方法を見ていきましょう。クラスや構造体を定義する際にも、グローバル変数を定義することができます。
ここではPlaygroundを使って解説します。
Xcode → File → Playground の順に選択して開始しましょう。
class Student {
var section: String = "A"
func getStudentData() {
// 何らかの処理
}
}上記のコードでは、sectionがグローバル変数として定義されています。ポイントはクラスの中でありながら、関数の外側で定義されている点です。必要に応じて、グローバル変数の前にアクセス修飾子を付けることもできます。
また、staticキーワードを先頭に付けることで、静的な(staticな)グローバル変数として定義することも可能です。
private var name: String = "Aman"
structを使った効率的な方法
もうひとつの効率的かつ推奨される方法として、構造体(struct)を使うやり方があります。専用の構造体を作成し、すべてのグローバル変数をその中にカプセル化しておけば、任意のクラスからどこでも自由に利用できるようになります。
具体的には次のように実装します。
struct Student {
static let name: String = "Aman"
static let age: Int = 22
}
class Employee {
func getData() {
print(Student.age)
print(Student.name)
}
}Studentという構造体内にstatic letで定数をまとめておくことで、他のクラスからもStudent.ageやStudent.nameのようにドット記法で簡単にアクセスできます。この方法には以下のようなメリットがあります。
- 名前空間が整理され、変数の出所が明確になる
- 型安全性が保たれる
- コードの可読性と保守性が向上する
まとめ
Swiftにおけるグローバル変数は、関数やメソッドの外側で定義することで作成でき、アクセス修飾子やstaticキーワードと組み合わせて柔軟に制御できます。特に実務では、構造体でグローバル変数をカプセル化する方法が推奨されます。ぜひ自分のプロジェクトでも活用してみてください。
-
Windows 10でパスワードリセットディスクを作成・使用する方法
セキュリティへの関心が高まる昨今、PCには強固なログインパスワードを設定する人が増えています。セキュリティ確保の観点からは必要不可欠な対策ですが、その反面、数多くのパスワードをすべて記憶しておくのは容易ではありません。 そんな中、Windows 10のPCにログインしようとしてEnterキーを押した瞬間、「パスワードが正しくありません」というメッセージが表示された経験はありませんか。考えられる組み合わせをすべて試してもログインできず、残された唯一の解決策がWindowsのパスワードリセットというケースも少なくありません。 そこで次に浮かぶ疑問は、「既存のログインパスワードを入力せずに、どうやっ
-
Googleスプレッドシートのテンプレートを作成・活用する方法を徹底解説
家計簿、請求書、カレンダーなど、スプレッドシートを効率よく作りたいなら、テンプレートの活用が欠かせません。テンプレートは、GoogleスプレッドシートやGoogleドキュメントを素早く作成するための最も便利な方法の一つです。Microsoft Excelを使ったことがある方なら、テンプレートを掲載したサイトを簡単に見つけられることはご存じでしょう。では、Googleスプレッドシートの場合はどうでしょうか。「Googleスプレッドシートにもテンプレートはあるのか?」と疑問に思う方は多いはずです。Google検索では表示される情報が限られているため、選択肢が少ないと感じてしまうかもしれません。しか