swiftで定数/不変量を定義するために「let」キーワードを使用する場合、「static」キーワードはどのように使用しますか?
2023-09-24 04:41:27
質問
を使うのに少し戸惑っています。 静的 キーワードの使用について少し混乱しています。ご存知のように、swiftでは を導入しています。 キーワードを導入しています。例えば、テーブルビューのセルのIDを宣言するようなもので、その寿命が尽きるまで変わることはないでしょう。では static キーワードは何のためにあるのでしょうか?
struct classConstants
{
static let test = "test"
static var totalCount = 0
}
ここで させる Objective C では static を使って次のような定数を宣言しています。
static NSString *cellIdentifier=@"cellId";
さらに、私が興味を持ったのは、このように 静的 キーワードと としてください。 であり、さらに var というキーワードがあります。この静的キーワードをどこで使えばいいのか、誰か説明してください。もっと重要なことは、私たちは本当に 静的 が必要なのでしょうか?
どのように解決するのですか?
分解して説明します。
-
var
: 変数を作成するために使用します。 -
let
: 定数の作成に使用されます。 -
static
: を作成するために使用されます。 タイプのプロパティ を作成します。let
またはvar
. これらは、クラスのすべてのオブジェクト間で共有されます。
これで、目的の結果を得るために組み合わせることができます。
-
static let key = "API_KEY"
: 定数である型プロパティ -
static var cnt = 0
: 変数であるタイププロパティ -
let id = 0
: 定数(一度だけ代入可能、ただし実行時に代入可能) -
var price = 0
: 変数
つまり、varとletは可変性を定義し、staticとlack of scopeは定義しないということです。例えば
static var
を使ってインスタンスの数を記録することもできますし、単に
var
を使いたいかもしれません。これで少しはすっきりしたでしょうか。
コード例です。
class MyClass{
static let typeProperty = "API_KEY"
static var instancesOfMyClass = 0
var price = 9.99
let id = 5
}
let obj = MyClass()
obj.price // 9.99
obj.id // 5
MyClass.typeProperty // "API_KEY"
MyClass.instancesOfMyClass // 0
関連
-
[解決済み] Swiftのstatic funcとclass funcの違いは何ですか?
-
[解決済み] Swift言語におけるエクスクラメーションマークの意味とは?
-
[解決済み] Pythonの関数内の静的変数に相当するものは何ですか?
-
[解決済み] Swiftの'open'キーワードは何ですか?
-
[解決済み】KotlinでJavaの静的メソッドに相当するものは何ですか?
-
[解決済み】クラスで「static」キーワードは何をするのですか?
-
[解決済み】Swiftの`let`と`var`の違いは何ですか?
-
[解決済み】Swift(UI)の "some "キーワードとは?)
-
[解決済み] Swiftの網羅的なSwitchステートメントのためのNoop
-
[解決済み] NSLog(@"%s", __PRETTY_FUNCTION__) の Swift 代替はあるか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Swiftのクラスにおける静的関数/変数とクラス関数/変数?
-
[解決済み】Swiftの`let`と`var`の違いは何ですか?
-
[解決済み] Swiftダブルからストリング
-
[解決済み] Swift - 複数条件でオブジェクトの配列を並べ替える
-
[解決済み] Swift の @escaping と Completion ハンドラ
-
[解決済み] SwiftUIのForEachでインデックスを取得する
-
[解決済み] swift で文字列から数字以外の文字を削除する
-
[解決済み] カスタムイニシャライザを持つSwift enumはrawValueイニシャライザを失う
-
[解決済み] Swiftの網羅的なSwitchステートメントのためのNoop
-
[解決済み] YクラスのオブジェクトXはSwiftでmethodSignatureForSelectorを実装していない