Xojoをどうぞ

xojoでの Array と ParamArray

0 コメント
views

xojoでの Array と ParamArray

Arrayとは同じ型の配列です。 例えば
'Var anArray()  As  Integer'
と宣言すれば、Integer型の配列の宣言です。

初期化には
'Var anArray() As Integer = Array( 1, 2, 3, 4, 5 )'
とします。

この配列の各要素に何か操作を施すには

''' xojo:
For Each theItem AsInteger In anArray
  [各要素への操作を行う]
Next
'''

とするのが基本です。

ここで、String型の配列に入っている要素を連結する場合

''' xojo:
Var theStringList() As String = GetInitialString()
Var theResult As String = ""
For Each theItem As String In theStringList
  theResult = theResult + theItem
Next
'''

とすると、theResultに連結した文字列が出来上がります。
これはFor-Each-Nextの使い方を示した例ですが、実際には
Stringクラスには連結のための機能があります。

''' xojo:
String.FromArrayメソッド
theResult = FromArray( theStringList , "" )
'''

2番目のパラメータを指定しないと、" "(半角スペース)が間に
使用されます。

ParamArray とはメソッド/関数に渡すパラメタとして、不定個数の
パラメタを渡す際に指定される物です。

''' xojo:A:
Function Concat( ParamArray inParam As String ) As String
  Var theResultStr As String = ""

  theResult Str = FromArray( inParam , "" )
  Return( theResultStr )
End Function
'''

''' xojo:B:
Function Concat( inStrList() As String ) As String
  Var theResultStr As String = ""

  theResult Str = FromArray( inStrList , "" )
  Return( theResultStr )
End Function
'''

上記のように、同じ実装で解決出来ます。
呼び出し側は

''' xojo:
Var theList() As String = Array( "だるま" , "さんが" , "ころんだ" )
MsgBox( Concat( theList ) )

MsgBox( Concat( "とうきょうの" , "きゃくは" , "よくにくくう", "きゃくだ" ) )
'''

は、各々どちらが呼び出されるでしょうか?

では、以下の宣言のメソッド本体を実装してみましょう。

'Function format( inFmtStr As String, ParamArray inParam As String ) As String'
そう、C言語のprintfに似た構文で使えるもので、様々な場面で利用できます。
制限:
inParamに渡されるのは文字列のみ、従って、inFmtStr内で使用出来るのも
%sの文字列指定のみです。

ひろやん
作成: 2026/04/15 (水) 10:45:08
通報 ...