質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

3回答

6351閲覧

swiftでの配列でのキーが存在するかどうかのチェック方法を教えてください

yoppy0066

総合スコア293

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

1グッド

2クリップ

投稿2015/07/24 09:03

var array = ["item1", "item2", "item3"]
上記のような配列がある場合に
0〜2を指定した場合にtrue、3以上を指定した場合にfalseが取得できるような関数があるのでしょうか?
もしくわ調べる方法はあるのでしょうか?

Mesh👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

特にextensionに抵抗が無ければArrayクラスにアクセス可能かどうかBoolを返す関数を追加してあげてはどうでしょうか

Swift

1extension Array { 2 func canAccess(index: Int) -> Bool { 3 return self.count-1 >= index 4 } 5}

こうやっておけばArrayのインスタンスからオブジェクトを取り出す際に下のように書けます

Swift

1var array = ["item1", "item2", "item3"] 2let index = 2 // 取得したい配列のIndex 3if array.canAccess(index) { 4 // 取得できたときの処理 5 var object = array[index] 6} else { 7 // 取得できない場合の処理 8}

投稿2015/07/25 12:46

__moai

総合スコア264

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoppy0066

2015/07/25 15:58

ありがとうございます。extensionはこういうときに使うんですね
guest

0

関数は無いかもですが、こんな感じでいかがでしょうか?

var index = 0 // 指定したい数字 var array = ["item1", "item2", "item3"] if index < array.count { println("0〜2を指定した場合") } else { println("3以上を指定した場合") }

投稿2015/07/24 09:19

yoneapp

総合スコア85

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Swift

1var array = ["item1", "item2", "item3"] 2 33 in array //false

このようにできる可能性がありますので試してみてください。

投稿2015/07/24 15:06

編集2015/07/24 15:07
f_acid

総合スコア56

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Stripe

2015/07/24 15:13

文法エラーになりますが?
f_acid

2015/07/25 02:07

無理でしたか.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問