ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
Swiftで変数を宣言するには、var キーワードに続けて変数名と値を書く(例: var name = "Taro")。これだけで、あとから値を入れ替えられる「変数」が用意される。
| この記事の要点 |
|---|
|
基本の書き方: var 名前 = 値
Swiftの変数宣言は、var の後ろに変数名、=、初期値の順に並べる。var で宣言した変数は、あとから何度でも別の値を代入し直せる。
|
var message = "Hello" print(message) // Hello
message = "Hi" // 再代入できる print(message) // Hi |
文末のセミコロン(;)は不要で、改行が文の区切りになる。1行に複数の文を書くときだけセミコロンで区切る。
型推論と型注釈
初期値を与えると、Swiftはその値から変数の型を自動的に判断する。これを型推論と呼ぶ。下の例では、整数リテラル 5 から count は Int、文字列リテラルから title は String と推論される。
|
var count = 5 // Int と推論される var title = "Swift" // String と推論される var rate = 0.5 // Double と推論される |
型を明示したいときは、変数名の後ろに : 型名 を付ける。これを型注釈という。型注釈を付けると、初期値が無くても型だけ先に決めておける(その場合、使う前に必ず値を代入する必要がある)。
|
var score: Int = 5 // 型注釈ありで初期化
var total: Int // 型だけ宣言 total = 100 // 後から代入 |
整数を Double として扱いたいなど、推論結果と違う型にしたい場合も型注釈が役立つ(例: var price: Double = 100 とすると 100 が Double として扱われる)。
var(変数)と let(定数)の違い
var が再代入できる変数なのに対し、let は一度値を決めたら変更できない定数を宣言する。let で宣言した名前にあとから代入しようとすると、コンパイル時にエラーになる。
|
var counter = 0 counter = 1 // OK(var なので変更できる)
let pi = 3.14 // pi = 3 // エラー(let は再代入できない) |
| 項目 | var(変数) | let(定数) |
|---|---|---|
| 再代入 | できる | できない |
| 主な用途 | 値が変化するもの | 値が変わらないもの |
| 型推論 | あり | あり |
| 変更しようとすると | そのまま動く | コンパイルエラー |
実務では、「変更する必要が無い値はできるだけ let で宣言し、再代入が必要なものだけ var にする」という書き方が広く推奨されている。let を優先すると、意図しない書き換えを防ぎやすく、コンパイラの最適化や読み手の理解にも役立つとされる。定数そのものの詳しい扱いは、定数の宣言を扱う別記事も参照するとよい。
変数名の命名規則
変数名は内容が分かる名前にし、慣習としてローワーキャメルケース(先頭は小文字、単語の区切りを大文字でつなぐ書き方)を用いることが多い。
- 良い例: userName / itemCount / isLoggedIn
- 使えるが推奨されにくい例: x、a1 のような意味の伝わりにくい名前
命名上のルールとして、次の点に注意する。
- 先頭を数字にすることはできない(例: 1count は不可、count1 は可)。
- 大文字と小文字は区別される(name と Name は別の変数)。
- var、let、class、func などの予約語(キーワード)は、そのままでは変数名に使えない。
- 同じスコープ内で同じ名前を二重に宣言することはできない。
型安全: あとから別の型は代入できない
Swiftは型安全な言語で、変数の型が一度決まると、その変数には基本的に同じ型の値しか代入できない。たとえば Int の変数に文字列を入れようとすると、コンパイル時にエラーになる。
|
var age = 20 // Int age = 21 // OK(同じ Int) // age = "twenty" // エラー(String は代入できない) |
また、Swiftには「Int を自動で Double にする」といった暗黙の型変換は無い。型の異なる値を組み合わせるときは、明示的に変換する必要がある(例: Double(age))。
値が無い状態を表す Optional
「まだ値が決まっていない」「値が無いこともある」状態を表したいときは、型の後ろに ? を付けたOptional(オプショナル)型を使う。Optional は値が入っている状態と、値が無い状態(nil)のどちらも取り得る。
|
var nickname: String? // 値が無い状態(nil)から始められる nickname = "Sho" // 後から値を入れられる nickname = nil // 値が無い状態にも戻せる |
Optional でない通常の変数には nil を入れられない点に注意する。Optional の値を取り出して使う方法(アンラップ)には複数の書き方があり、別途まとめて理解しておくとよい。
よくある落とし穴
| 落とし穴 | 内容と対処 |
|---|---|
| 何でも var にする | 変更しない値まで var にすると、誤って書き換えても気付きにくい。再代入が不要なら let を使う。多くの開発環境では「let にできる」と警告が出ることもある。 |
| 暗黙変換を期待する | Int と Double をそのまま混ぜて計算しようとするとエラーになる。Double(値) のように明示的に変換する。 |
| 初期化前にアクセスする | 型注釈だけで初期値を与えていない変数を、値を代入する前に読み出すとコンパイルエラーになる。先に値を代入してから使う。 |
| nil の代入 | Optional でない変数に nil を入れようとするとエラーになる。値が無い状態を扱うなら型を Optional(型名?)にする。 |
記述例と出力結果
|
var str = "Hello, playground" print(str) |
|
Hello, playground |
FAQ
Q. var と let はどちらを使えばよいですか。
A. 値を変更する必要が無ければ let、再代入が必要なら var を使うのが一般的な目安とされる。迷ったときはまず let で書き、再代入が必要になった時点で var に変えると安全に書きやすい。
Q. 型注釈は必ず書く必要がありますか。
A. 初期値を与える場合は型推論が働くため、多くの場面で省略できる。ただし、初期値を与えずに型だけ先に決めたいときや、推論される型と違う型にしたいとき(例: 整数を Double として扱いたいとき)は型注釈を書く。
Q. 宣言した変数に違う型の値を入れられますか。
A. 入れられない。Swiftは型安全で、変数の型は宣言時に固定され、その後は同じ型の値しか代入できない。別の型として扱いたい場合は Double(値) のように明示的な変換を行う。
まとめ
- Swiftの変数は var 名前 = 値 で宣言し、宣言後に再代入できる。
- 初期値があれば型は型推論で決まり、var x: Int = 5 のように型注釈で明示もできる。
- 再代入しない値は let(定数)で宣言し、変更が必要なものだけ var にするのが推奨される作法とされる。
- 変数名はローワーキャメルケースが慣習で、予約語や先頭数字、同名の二重宣言は使えない。
- 型安全のため別の型は代入できず、暗黙変換も無い。値が無い状態を扱うなら Optional(型名?)を使う。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?