[解決済み] Swift で Enumeration のアソシエーション値にアクセスする
2023-07-03 21:20:11
質問
このコードでは、私は本当に役に立たない列挙型を書きました。
Number
をIntかFloatで定義しています。
関連付けで設定した値にアクセスする方法がわかりません。もし私がそれを印刷しようとすると、単に
(Enum Value)
enum Number {
case int (Int)
case float (Float)
}
let integer = Number.int(10)
let float = Number.float(10.5)
println("integer is \(integer)")
println("float is \(float)")
どのように解決するのですか?
値は列挙型のインスタンスに関連付けられます。そのため、スイッチなしでアクセスするには、ゲッターを作成して、明示的に利用できるようにする必要があります。以下のような感じです。
enum Number {
case int(Int)
case float(Float)
func get() -> NSNumber {
switch self {
case .int(let num):
return num
case .float(let num):
return num
}
}
}
var vInteger = Number.int(10)
var vFloat = Number.float(10.5)
println(vInteger.get())
println(vFloat.get())
将来的にはそのようなものが自動的に作られるかもしれませんし、より短い利便性が言語に追加されるかもしれませんね。
関連
-
[解決済み] dispatch_after - GCD in Swift?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Swiftで#pragmaマーク?
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] Swiftでindexとelementでループを反復させる方法
-
[解決済み] SwiftでStringを配列に分割する?
-
[解決済み] Swiftの@selector()?
-
[解決済み] Swift カスタムオブジェクトの配列をプロパティ値でソートする方法
-
[解決済み] Swift: switch ケースでオプションの値に対するテストを行う
-
[解決済み] Swiftでenumの関連値を無視して比較する方法は?
最新
-
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ダブルからストリング
-
[解決済み] クラス 'ViewController' は swift で初期化されません。
-
[解決済み] UIViewの定高制約をプログラムで更新するには?
-
[解決済み] Swiftのリバースレンジ
-
[解決済み] Swift: PREPROCESSORフラグ(`#if DEBUG`など)を使ってAPIキーを実装する方法とは?
-
[解決済み] 固定サイズのオブジェクトの配列を作成する方法
-
[解決済み] SwiftでNSDatesの秒数の差を整数値で求める。
-
[解決済み] Swiftでオプショナルをダウンキャストする:as? タイプ、または as! タイプ?
-
[解決済み] swiftの辞書からキーと値のペアを削除するには?
-
[解決済み] Swiftのコード実行をベンチマークするには?