**(text: // ...[ [[harlowe:Number|Number]] or [[harlowe:String|String]] or [[harlowe:Boolean|boolean]] or [[harlowe:Array|Array]] ]//) -> //String//**

Also known as: [[harlowe:string|(string:)]]

(text:) accepts any amount of expressions and tries to convert them all
to a single String.

=== Example usages: ===

  * ''%%(text: $cash + 200)%%''
  * ''%%(if: (text: $cash)'s length > 3)[Phew! Over four digits!]%%''
  * ''%%(text: ...$arr)%%''

=== Rationale: ===

Unlike in Twine 1 and SugarCube, Twine 2 will only convert [[harlowe:number|number]] into [[harlowe:string|string]], or strings
into numbers, if you explictly ask it to. This extra carefulness decreases
the likelihood of unusual bugs creeping into stories (such as adding 1 and "22"
and getting "122"). The (text:) macro (along with [[harlowe:num|(num:)]]) is how you can convert
non-string values to a string.

=== Details: ===

This macro can also be used much like the [[harlowe:print|(print:)]] macro - as it evaluates to a
string, and strings can be placed in the story source freely,

If you give an [[harlowe:Array|Array]] to (text:), it will attempt to convert every element
contained in the array to a String, and then join them up with commas. So,
''%%(text: (a: 2, "Hot", 4, "U"))%%'' will result in the string "2,Hot,4,U".
If you'd rather this not occur, you can also pass the array's individual
elements using the ''%%...%%'' operator - this will join them with nothing in between.
So, ''%%(text: ...(a: 2, "Hot", 4, "U"))%%'' will result in the string "2Hot4U".

=== See also: ===

[[harlowe:num|(num:)]]