Binary strings: Difference between revisions

Content added Content deleted
(Added Wren)
Line 3,662: Line 3,662:


End Module</lang>
End Module</lang>

=={{header|Wren}}==
In Wren, a string is simply an array of bytes. Although they are typically characters stored in UTF-8 format, they don't have to be interpreted in that way and, in recognition of this as well as for efficiency reasons, many of the built-in string functions operate at the byte level.

Despite this, there is no separate byte type - one just uses a single character string instead.

Strings are immutable and assignment creates a new copy rather than a reference to the original string.

All strings belong to the built-in String class which does not have an explicit constructor. To create one you either use a literal (a series of characters enclosed in double quotes) or assign an existing string.

When there are no longer any references to a string it is automatically garbage collected. You can't really destroy a string manually though you can request an immediate garbage collection be performed by calling the ''System.gc()'' method.

Setting a string variable to the special value ''null'' means that the variable currently has no value though it can still be assigned one later.
<lang ecmascript>// create string
var s = "abc"

// destroy string (not really see notes above)
s = null

// (re)assignment
s = "def"

// comparison (only == && != supported directly)
var b = (s == "abc") // false

// cloning/copying
var t = s

// check if empty
s = ""
b = (s != "") // false
b = s.isEmpty // true

// append a byte
s = s + "b"

// extract a substring
s = "ghijkl"
t = s[1..4] // "hijk"

// replace a byte or string
s = "abracadabra"
s = s.replace("a", "z") // "zbrzczdzbrz"

// join strings
s = "abc"
t = "def"
var u = s + t // "abcdef"</lang>


=={{header|zkl}}==
=={{header|zkl}}==