15073

[code]

    func getWeatherString(local:Area) -> String
    {
       return ["晴れ","曇り","雨"][local.weather]
    }
    
[/code]

上記の `return ["晴れ","曇り","雨"][local.weather]` の構文が理解できません。  
これはなんという仕組みなのですか？  
ネットで調べようと思ってもキーワードがわかりません。


CC BY-SA 3.0
2015-08-31T04:10:44.273
15067
2015-08-31T05:24:49.520
2015-08-31T05:24:49.520
49
11148
question
swift
swiftの構文[][]がわかりません。


["晴れ","曇り","雨"]は`Array`になります。  
`local.weather`は`Integer`ではないでしょうか？  
ですので、`local.weather`は0でしたら"晴れ”になります。２でしたら"雨"です。普通の構文ですがただ変数を使っていません。


CC BY-SA 3.0
2015-08-31T04:24:25.220
15069
2015-08-31T04:24:25.220
4336
15067
answer


ただの配列で、[要素][添字]となっています。

[code]

    println(["晴れ","曇り","雨"][0])
    println(["晴れ","曇り","雨"][1])
    println(["晴れ","曇り","雨"][2])
    
[/code]

で

[code]

    晴れ
    曇り
    雨
    
[/code]

と出力されます。


CC BY-SA 3.0
2015-08-31T04:26:19.440
15071
2015-08-31T05:22:04.073
2015-08-31T05:22:04.073
10966
10966
15067
answer

[code]

    return ["晴れ","曇り","雨"][local.weather]
    
[/code]

この式を、複数の式に分解して書き直しましょう。そうすれば理解が早いかもしれません。

[code]

    let number: Int = local.weather
    let weathers: [String] = ["晴れ","曇り","雨"]
    let theWeather: String = weathers[number]
    return theWeather
    
[/code]

配列から、添字を使って要素を取り出している処理ということがわかります。


CC BY-SA 3.0
2015-08-31T04:49:25.170
15073
2015-08-31T04:49:25.170
7362
15067
answer