String#
String は文字列を扱う独立した Value 型です。日本語・絵文字・空文字列を扱えます。 Integer や Enum とは自動変換しません。文字列ソケットは String に直接接続します。
fn greeting(name: String) -> String {
return string_concat(literal(String, "こんにちは、"), name);
}
String Input の Value 欄で編集できます。Enter で確定、Escape で取消です。 IME 変換中の Enter は確定操作に重ねて扱いません。
| 操作 | 結果 |
|---|---|
string_concat(a, b) |
連結した String |
string_length(value) |
Unicode スカラー値の個数を Integer で返す |
string_slice(value, start, count) |
Integer 位置・個数による部分文字列 |
string_find(value, needle) |
最初の一致位置。なければ Integer -1 |
string_replace(value, needle, replacement) |
重ならない全一致を置換。空の needle はエラー |
equal(a, b) / select(condition, a, b) |
型を保持した比較・選択 |
位置はバイト数や表示上の字形数ではありません。あ😀x の長さは 3 です。
結合文字を自動的に正規化しません。上限は UTF-8 で 1 MiB。不正な UTF-8 や
上限超過は理由付きエラーです。切り詰めません。
画像とは独立した uniform Value の処理で実行します。String から求めた値は 通常の画像処理へ渡せます。String の Field/Grid ストレージとAEのSource Text取り込みは未対応です。
従来の裸の "file.png" は引き続き Buffer<UInt8> のリテラルです。
正式な String は literal(String, "file.png") と書きます。