|
@@ -20,41 +20,69 @@
|
|
|
* DEALINGS IN THE SOFTWARE.
|
|
|
*/
|
|
|
/**
|
|
|
- A String buffer is an efficient way to build a big string by
|
|
|
- appending small elements together.
|
|
|
+ A String buffer is an efficient way to build a big string by appending small
|
|
|
+ elements together.
|
|
|
+
|
|
|
+ Its cross-platform implementation uses String concatenation internally, but
|
|
|
+ StringBuf may be optimized for different targets.
|
|
|
+
|
|
|
+ Unlike String, an instance of StringBuf is not immutable in the sense that
|
|
|
+ it can be passed as argument to functions which modify it by appending more
|
|
|
+ values. However, the internal buffer cannot be modified.
|
|
|
**/
|
|
|
class StringBuf {
|
|
|
|
|
|
var b:String = "";
|
|
|
|
|
|
/**
|
|
|
- Creates a new string buffer.
|
|
|
+ Creates a new StringBuf instance.
|
|
|
+
|
|
|
+ This may involve initialization of the internal buffer.
|
|
|
**/
|
|
|
public function new() {}
|
|
|
|
|
|
/**
|
|
|
- Adds the representation of any value to the string buffer.
|
|
|
+ Appends the representation of [x] to [this] StringBuf.
|
|
|
+
|
|
|
+ The exact representation of [x] may vary per platform. To get more
|
|
|
+ consistent behavior, this function should be called with
|
|
|
+ Std.string(x).
|
|
|
+
|
|
|
+ If [x] is null, the String "null" is appended.
|
|
|
**/
|
|
|
public inline function add( x : Dynamic ) : Void {
|
|
|
b += x;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- Adds a part of a string to the string buffer.
|
|
|
+ Appends the character identified by [c] to [this] StringBuf.
|
|
|
+
|
|
|
+ If [c] is negative or has another invalid value, the result is
|
|
|
+ unspecified.
|
|
|
**/
|
|
|
public inline function addChar( c : Int ) : Void {
|
|
|
b += String.fromCharCode(c);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- Adds a character to the string buffer.
|
|
|
+ Appends a substring of [s] to [this] StringBuf.
|
|
|
+
|
|
|
+ This function expects [pos] and [len] to describe a valid substring of
|
|
|
+ [s], or else the result is unspecified. To get more robust behavior,
|
|
|
+ [this].add(s.substr(pos,len)) can be used instead.
|
|
|
+
|
|
|
+ If [s] or [pos] are null, the result is unspecified.
|
|
|
+
|
|
|
+ If [len] is omitted or null, the substring ranges from [pos] to the end
|
|
|
+ of [s].
|
|
|
**/
|
|
|
public inline function addSub( s : String, pos : Int, ?len : Int) : Void {
|
|
|
b += s.substr(pos, len);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- Returns the content of the string buffer.
|
|
|
+ Returns the content of [this] StringBuf as String.
|
|
|
+
|
|
|
The buffer is not emptied by this operation.
|
|
|
**/
|
|
|
public inline function toString() : String {
|