HOME > Subscript
Subscriptとは?
SubscriptはSwiftから登場してきた仕組みのようです。
Subscript=購買のように本を定期的に番号で購入するように、決められた番号(定数やEnum)でアクセスすると
ArrayでDictionaryでデータを取得したようにデータを隠蔽する手段です。関数でもArrayでもDictionaryでも同じ作業をすることが可能ですが、より明確に分かりやすく実装することが可能となっています。
やってみた
以下のソースを一度Playgroundにでも貼り付けて実行してみてください。訳のわからないサンプルになってしまいましたが、Salarymanクラスで、健康診断結果を保存できるオブジェクトです。
var me:Salaryman = Salaryman();
me[.Lipid] = "脂質異常";
println(me[.Lipid]);//脂質異常 を出力します
println(me[.BloodSugar]);//結果なし。再検査 を出力します
class Salaryman
{
enum ResultOfHealthDiagnosis//健康診断結果
{
case Lipid //脂質
case BloodSugar //血糖
case BloodPressure // 血圧
}
var results: [ResultOfHealthDiagnosis : String] = [:];
subscript(requestedResult : ResultOfHealthDiagnosis) -> String
{
get
{
if let thisResult = results[requestedResult]
{
return thisResult
}
else
{
return "結果なし。再検査"
}
}
set(newResult)
{
results[requestedResult] = newResult
}
}
}
さて、上記よりsubscriptですが要はget/setです。少年ジャンプの[5]号を購入。[秋特別号]を購入するだったりと、
ユーザ側では簡単な定数を割り当てるだけで、内部側ではget/setの処理よりArrayやDictionaryへアクセスするといった仕組みのようです。
自分で上記を書いていて思ったのですがget/setと同じものでもありますので、「subscript=購買」と英語と日本語
に馴染みのない英語なので逆に混乱してしまうかもなぁと思っていました。私はですが「購買」という日本語自体使いませんのでそう感じます。
つきましては私は自分では利用せず、海外のソースを解析する際には上記の認識をしながら進めていけたらと思っております。もっと 納得できる良い利用方法がでてきたら、追って追加してまいります。
↓こんな記事もありますよ!
![]() | NSThreadでスレッド処理を行うタイマー処理と同様に利用できるスレッドの処理です。NSTimerではヒゲがのびたサンプルでしたので眉毛の濃くなるサンプルにしてみます。ただ、どうやらThread処理は 推奨されておらず、dispatch_queueを使用するべきのようです。 |
![]() | SQLiteを使いたい。ラッパーを検証してみる。SQLiteを使いたい。Objective-Cの時はMagical RecordでCoreDataを利用して問題なく使えたのですが、 今回はSQLite+Swiftでトライしてみたいと思います。ざっと調査すると、SwiftでSQLiteを使うのは、FMDB, SwiftData, SQLite.swiftが あるみたいです。この三つのラッパーから好みのものを選んでみるのが目標です。 |
![]() | UIToolBar画面の端っこに追加できるツールバーコントロール。アプリにピリッとアクセントを付けます。機能を追加したい時に便利です |
Tweet
![]() |
|||
|