プロパティリスト演算子
add properties、replace properties、remove properties、およびretain propertiesコマンド
振る舞い
add propertiesコマンドは、プロパティリストまたはオブジェクトのプロパティを、そのプロパティがまだ存在しない既存のプロパティリストまたはオブジェクトに追加します。replace propertiesコマンドはこれと類似しており、新しい値で既存のプロパティを上書きします。remove propertiesコマンドは、既存のプロパティリストまたはオブジェクトから指定されたプロパティを削除します。retain propertiesコマンドは、保持することが明示的に要求されていないプロパティを削除します。
いつ使用すべきか
add properties、replace properties、remove propertiesおよびretain propertiesコマンドを使用することで、既存のプロパティリストまたはオブジェクトのプロパティを変更できます。既存のオブジェクトに影響を及ぼさずにプロパティを結合させたり、削除するには、これらの代わりにadding properties、replacing properties、removing propertiesまたはretaining properties演算子を使用します(詳細情報は式を参照)。
構文:
replace {the} properties {of} replacementPropList [of | in] sourcePropList
remove {the} properties {of} propertiesToRemove from sourcePropList
retain {the} properties {of} propertiesToRetain [of | in] sourcePropList
- additionalPropList内のプロパティがsourcePropList内に既に存在する場合は、そのプロパティは無視されます。additionalPropListが空の場合は、本コマンドは無効となります。
- replacementPropList内のプロパティがsourcePropList内に既に存在する場合は、そのプロパティは新しい値に置き換えられます。replacementPropList内のその他の値は、sourcePropList内のプロパティに追加されます。replacementPropListが空の場合は、本コマンドは無効となります。
- propertiesToRemoveは、単一プロパティの名前、プロパティ名のリスト、またはプロパティリストとなります。プロパティリストが与えられている場合は、その値は無視されますが、そのキーは削除するプロパティのリストとして使用されます。sourcePropList内に存在しないプロパティを削除しようとしても効果はありません。
- propertiesToRetainは、単一プロパティの名前、プロパティ名のリスト、またはプロパティリストとなります。プロパティリストが与えられている場合は、その値は無視されますが、そのキーは保持するプロパティのリストとして使用されます。sourcePropList内に存在しないプロパティを保持しようとしても効果はありません。
例:
put (A:1, C:3) into myObj
add properties (B:2, C:99, D:4) to myObj//プロパティリスト「(A:1, B:2, C:3, D:4)」が得られます。add propertiesコマンドは、キーC:の既存値を置き換えません。
replace properties (B:"bunny", D"dog") of myObj//プロパティリスト「(A:"1", B:"bunny", C:"3", D:"dog")」が得られます。
remove property (B:765) from myObj //プロパティリスト「(A:1, C:3, D:dog)」が得られます。remove propertyコマンドにより、プロパティに付属する値が実際のプロパティリストと一致しない場合でも、そのプロパティが削除されます。
remove properties ("C") from myObj//プロパティリスト「(A:1, D:dog)」が得られます
remove properties ("C") from myObj//プロパティリスト「(D:dog)」が得られます
例:
#Overrides Script
on Click ImagePL
add property (scale:(.5)) to ImagePL //スケールプロパティを元のメッセージ(画像プロパティリスト)に追加することで、上書きされたすべてのclickコマンドによってサイズが半分の画像が検索されるようにします。
pass message //次のオブジェクト(Clickコマンド)にメッセージを渡します。詳細情報は、メッセージを渡すを参照してください。
Click ImagePL
end Click
# Main script
start using Overrides //SenseTalkの内蔵コマンド上のOverridesスクリプトに書き込まれたoverrideコマンドのライブラリに優先順位を付けます。
Click (name:"ChromeIcon")
adding、replacing、removing、retaining properties
挙動:これらの4つの演算子はプロパティリストと連携し、修正済みの一連のプロパティを含む新しいプロパティリストを生成させます。新しいプロパティリストは、2つ目のプロパティリストからのプロパティの追加または置き換え、特定のプロパティの削除、または選択したプロパティ以外のすべてのプロパティの削除によって抽出されます。
adding properties演算子を使用すると、2つの異なるプロパティリストまたはオブジェクトのプロパティを組み合わせて新しいプロパティリストを作成できます。replacing properties演算子は、2つの異なるプロパティリストまたはオブジェクトのプロパティを組み合わせて新しいプロパティリストを作成し、2つ目のプロパティリスト内で対応するプロパティを使用して、最初のプロパティリスト内のプロパティを上書きします。removing properties演算子は、プロパティリストまたはオブジェクトからプロパティの一部を削除し、新しいプロパティリストを作成します。retaining properties演算子は、あるプロパティリストから新しいプロパティリストを作成します。この新しいプロパティリストには、元のプロパティリストで指定されたプロパティのみが含まれます。
adding(追加)時にプロパティが両方のプロパティリストで表示される場合は、sourcePropList内のプロパティがadditionalPropList内のプロパティに優先します。replacing(置き換え)時は逆も真となり、propsToReplaceのプロパティがsourcePropList内のプロパティに優先します。
プロパティをremoving(削除)する場合は、propsToRemoveは単一プロパティの名前、プロパティ名のリスト、またはプロパティリストとなります(値は無視されますが、そのキーは削除するプロパティとして使用されます)。存在しないプロパティを削除しようとしても効果はありません。retaining演算子はこれと類似していますが、削除するプロパティを指定する代わりに、propsToRetainが元のプロパティリスト内で保持するプロパティを指定し、その他すべてのプロパティは削除されます。単語「property」または「properties」は、これらすべての演算子におけるオプションです。
構文:
sourcePropList adding {property | {the} properties {of}} additionalPropList
sourcePropList removing {property | {the} properties {of}} propsToRemove
sourcePropList replacing {property | {the} properties {of}} propsToReplace
sourcePropList retaining {property | {the} properties {of}} propsToRetain
例:
put (A:1,C:3) into firstProps -- シンプルなプロパティリストで始めます
例:
put firstProps adding properties (B:2, C:99, D:4) into newProps
例:
put firstProps -- 変わりません:(A:1, C:3)
例:
put newProps -- (A:1, B:2, C:3, D:4)
例:
put newProps removing properties ("B","C") -- (A:1, D:4)
例:
put newProps replacing (B:22, D:44) -- (A:1, B:22, C:3, D:44)
例:
put newProps retaining ("B","D","E") -- (B:2, D:4)
次の項目も参照してください。リストおよびプロパティリストにおけるadd properties、replace properties、remove propertiesおよびretain propertiesコマンド。