Open taiseiue opened 4 months ago
配列や文字列に対して*演算子を使用することで、左辺の全ての要素を右辺で指定された回数繰り返した新しいインスタンスを返したい。
*
var ary1 = [0, 1, 2]; var ary2 = ary1 * 2; print(ary2); //出力: [0, 1, 2, 0, 1, 2]
従来文字列を繰り返すには+演算子を複数回適用していた。反復回数を指定することで、文字列結合よりも用途に特化した最適化を行える。配列も同様。
+
次の構文をとる。
array * number string * number
ただし、numberがuintの範囲外の場合はWRONG_TYPE_VARIABLE(0x023): 型が一致しないか、変換できません。をスローする。また、number == 0の場合は空の文字列/配列を返す
number
uint
WRONG_TYPE_VARIABLE(0x023): 型が一致しないか、変換できません。
number == 0
該当ドキュメント
誤って使われることがある?
破壊的変更はなし。
なし。
これ右辺に自然数以外つけたときどうするんや?
uintの範囲外やったら例外する方針かな
文字列および配列の反復演算子
概要
配列や文字列に対して
*
演算子を使用することで、左辺の全ての要素を右辺で指定された回数繰り返した新しいインスタンスを返したい。動機
従来文字列を繰り返すには
+
演算子を複数回適用していた。反復回数を指定することで、文字列結合よりも用途に特化した最適化を行える。配列も同様。詳細設計
次の構文をとる。
ただし、
number
がuint
の範囲外の場合はWRONG_TYPE_VARIABLE(0x023): 型が一致しないか、変換できません。
をスローする。また、number == 0
の場合は空の文字列/配列を返す該当ドキュメント
欠点
誤って使われることがある?
破壊的変更はなし。
前例
なし。
未確定の設計
なし。