Next: , Previous: , Up: Strings and Characters   [Contents][Index]


4.4 文字列の変更

このセクションで説明する処理を介して変更可能な文字列のコンテンツを変更できます。Mutabilityを参照してください。

既存の文字列の内容を変更するもっとも基本的な方法は、aset (Array Functionsを参照)を使用する方法です。(aset string idx char)は、stringのインデックスidxに、charを格納します。それぞれの文字は1文字以上を占有しますが、すでにインデックスの場所にある文字のバイト数がcharが要するバイト数と異なる場合、asetはエラーをシグナルします。

より強力な関数はstore-substringです:

Function: store-substring string idx obj

この関数はインデックスidxで開始される位置にobjを格納することにより、文字列stringの内容の一部を変更する。objは文字、または(stringより小さい)文字列です。

既存の文字列の長さを変更するのは不可能なので、stringの実際の長さにobjが収まらない、またはstringのその位置に現在ある文字のバイト数が新しい文字に必要なバイト数と異なる場合はエラーになる。

パスワードを含む文字列をクリアーするときにはclear-stringを使用します:

Function: clear-string string

これはstringをユニバイト文字列にして、内容を0にクリアーする。これによりstringの長さも変更されるだろう。