4D v17.4

collection.copy( )

ホーム

 
4D v17.4
collection.copy( )

collection.copy( )  


 

説明  

collection.copy( ) ファンクションは、コレクションインスタンスのディープ・コピーを返します。. ディープ・コピーとは、元のコレクション内のオブジェクトあるいはコレクションの複製であるということを意味し、返されたコレクションと元のコレクションは参照を共有しないということを意味します。

注:

  • このファンクションは元のコレクションは変更しません。
  • 共有コレクションに対して適用した場合、copy( ) は通常の(非共有)コレクションを返します。

元のコレクションがポインター型の値を格納していた場合、デフォルトではコピーに方にもポインターが格納されます。しかしながら、resolvePtrs 引数にck resolve pointers 定数を渡すことで、複製時にポインターを解決することができます。この場合、コレクション内の各ポインターは複製時に評価され、その逆参照値が使用されます。

例題  

 C_COLLECTION($col)
 C_POINTER($p)
 $p:=->$what
 
 $col:=New collection
 $col.push(New object("alpha";"Hello";"num";1))
 $col.push(New object("beta";"You";"what";$p))
 
 $col2:=$col.copy()
 $col2[1].beta:="World!"
 ALERT($col[0].alpha+" "+$col2[1].beta) //"Hello World!"を表示
 
 $what:="You!"
 $col3:=$col2.copy(ck resolve pointers)
 ALERT($col3[0].alpha+" "+$col3[1].what) //"Hello You!"を表示



参照 

New collection
OB Copy

 
プロパティ 

プロダクト: 4D
テーマ: コレクション

This command can be run in preemptive processes

 
ページの目次 
 
履歴 

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v17)
ランゲージリファレンス ( 4D v17.1)
ランゲージリファレンス ( 4D v17.2)
ランゲージリファレンス ( 4D v17.3)
ランゲージリファレンス ( 4D v17.4)