rhai/scripts/string.rhai

47 lines
1.4 KiB
Plaintext
Raw Normal View History

2022-01-20 05:06:36 +01:00
// This script tests string operations.
2020-03-16 07:50:12 +01:00
print("hello");
2020-03-16 07:50:12 +01:00
print("this\nis \\ nice"); // escape sequences
print("0x40 hex is \x40"); // hex escape sequence
print("Unicode fun: \u2764"); // Unicode escape sequence
2020-03-16 07:50:12 +01:00
print("more fun: \U0001F603"); // Unicode escape sequence
print("foo" + " " + "bar"); // string building using strings
print("foo" < "bar"); // string comparison
print("foo" >= "bar"); // string comparison
print("the answer is " + 42); // string building using non-string types
let s = "\u2764 hello, world! \U0001F603"; // string variable
2021-04-04 17:22:45 +02:00
print(`length=${s.len}`); // should be 17
2020-03-16 07:50:12 +01:00
2020-06-27 15:19:53 +02:00
s[s.len-3] = '?'; // change the string
2021-04-04 17:22:45 +02:00
print(`Question: ${s}`); // should print 'Question: hello, world?'
// Line continuation:
let s = "This is a long \
string constructed using \
line continuation";
2021-04-04 17:22:45 +02:00
// String interpolation
print(`One string: ${s}`);
// Multi-line literal string:
let s = `
\U0001F603 This is a multi-line
"string" with \t\x20\r\n
made using multi-line literal
string syntax.
`;
print(s);
2021-04-09 16:48:47 +02:00
// Interpolation
let s = `This is interpolation ${
let x = `within ${let y = "yet another level \
of interpolation!"; y} interpolation`;
x
} within literal string.`;
print(s);
print(">>> END <<<");