「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 )

実行結果

$ 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

Posted by arkgame