Help us understand the problem. What is going on with this article?

[Swift]アクセスレベル

今回はアクセスレベルについて書いていきたいと思います📝
よく変数や関数の前にPrivateといったのを見たことはありませんか?それの事です😎

対象はSwift5です。
公式ドキュメントはこちら

アクセスレベルとは

簡単に言うと宣言した変数やメソッドなどを何処でも使えるようにするか、又は制限した範囲でのみ使用可能にするか設定することです。

全部で5つあり、それぞれ特徴があります。

アクセスレベル 説明
Private 宣言したコードブロック内でのみアクセス可能(これの中→{})
FilePrivate 宣言されたファイル内でのみアクセス可能
Internal アプリのモジュール内でアクセス可能(デフォルトはこれで、設定しなかったら自動でInternalになる)
Public 他のモジュールへのアクセスが可能になるが、継承やオーバーライドは不可
Open 継承もオーバーライドも可能になる、つまり何でもできる

なぜアクセスレベルを使うのか

アクセスレベルを設定しないとデフォルトでInternalになるので、モジュール内でアクセス可能になってしまいます。
モジュール内で使うことを想定しているのなら問題ないのですが、特定の処理に使うことを想定した変数やメソッドを関係無いところで使われるのは問題です😱
それを防ぐためにアクセスレベルを設定し、意図しない利用を防ぎます!🙅‍♂️

このアクセスレベルはいつでも変更が可能なので、初期段階で利用範囲が決まっていないのなら、基本的にPrivateで設定して置くのが無難です。
利用範囲が大きくなったタイミングで段階的にアクセスレベルを広げていきましょう!🙆‍♂️

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした