「Swift5」mergeメソッドで辞書をマージするサンプル
環境
Swift-5.2.3-RELEASE
Ubuntu 20.04.2 LTS
構文
辞書変数A.merge( 辞書変数B ){ (current, _) in current }
マージ結果をマージに使用した変数に代入します。
辞書A.merge( 辞書B ) の場合、マージ結果は辞書Aに代入されます。
同じキーがある場合、辞書Aと辞書B どちらの値を使用するかはクロージャで指定します。
使用例
var cftA = [ "tokyo": 11 , "oosaka": 22, "fukuoka":33 ]
var cftB = [ "fukuoka": 44, "yokohama": 55 ]
print("重複キーはcftAの要素を使用する")
cftA.merge( cftB ){ (current, _) in current }
print("マージ結果cftA")
print( cftA )
print("マージ結果cftB")
print( cftB )
print("重複キーはcftBの要素を使用する")
cftA.merge( cftB ){ (_, new) in new }
print(cftA)
print( cftB )
var cftA = [ "tokyo": 11 , "oosaka": 22, "fukuoka":33 ]
var cftB = [ "fukuoka": 44, "yokohama": 55 ]
print("重複キーはcftAの要素を使用する")
cftA.merge( cftB ){ (current, _) in current }
print("マージ結果cftA")
print( cftA )
print("マージ結果cftB")
print( cftB )
print("重複キーはcftBの要素を使用する")
cftA.merge( cftB ){ (_, new) in new }
print(cftA)
print( cftB )
var cftA = [ "tokyo": 11 , "oosaka": 22, "fukuoka":33 ] var cftB = [ "fukuoka": 44, "yokohama": 55 ] print("重複キーはcftAの要素を使用する") cftA.merge( cftB ){ (current, _) in current } print("マージ結果cftA") print( cftA ) print("マージ結果cftB") print( cftB ) print("重複キーはcftBの要素を使用する") cftA.merge( cftB ){ (_, new) in new } print(cftA) print( cftB )
実行結果
$ swift test4.swift
重複キーはcftAの要素を使用する
マージ結果cftA
["fukuoka": 33, "oosaka": 22, "tokyo": 11, "yokohama": 55]
マージ結果cftB
["fukuoka": 44, "yokohama": 55]
重複キーはcftBの要素を使用する
["fukuoka": 44, "oosaka": 22, "tokyo": 11, "yokohama": 55]
["fukuoka": 44, "yokohama": 55]
$ swift test4.swift
重複キーはcftAの要素を使用する
マージ結果cftA
["fukuoka": 33, "oosaka": 22, "tokyo": 11, "yokohama": 55]
マージ結果cftB
["fukuoka": 44, "yokohama": 55]
重複キーはcftBの要素を使用する
["fukuoka": 44, "oosaka": 22, "tokyo": 11, "yokohama": 55]
["fukuoka": 44, "yokohama": 55]
$ swift test4.swift 重複キーはcftAの要素を使用する マージ結果cftA ["fukuoka": 33, "oosaka": 22, "tokyo": 11, "yokohama": 55] マージ結果cftB ["fukuoka": 44, "yokohama": 55] 重複キーはcftBの要素を使用する ["fukuoka": 44, "oosaka": 22, "tokyo": 11, "yokohama": 55] ["fukuoka": 44, "yokohama": 55]