std.convert
型変換モジュールで、現在値から String への変換を提供します。
yaoxiang
use std.convert変換ルール
to_string は値のランタイム形式に基づいてフォーマットします:
| 型 | 出力形式 | 例 |
|---|---|---|
Void | void | void |
Bool | true / false | true |
Int | 十進数 | 42 |
Float | 下記参照 | 3.14 / 2.0 |
Char | 文字そのもの | a |
String | 元の内容(引用符なし) | hello |
List | [要素, ...] | [1, 2, 3] |
Dict | {k: v, ...} | {a: 1} |
Tuple | (要素, ...) | (1, hello) |
Array | [要素, ...] | [1, 2] |
Range | 開始..終了 | 1..5(step が 1 の場合は省略) |
Bytes | bytes[長さ] | bytes[3] |
Float の整数値は小数点を補完し(2 ではなく 2.0)、Int と Float の区別を容易にします。
関数一覧
| 関数 | シグネチャ |
|---|---|
to_string | (value) -> String |
int.to_string | (self) -> String |
float.to_string | (self) -> String |
bool.to_string | (self) -> String |
char.to_string | (self) -> String |
string.to_string | (self) -> String |
list.to_string | (self) -> String |
dict.to_string | (self) -> String |
tuple.to_string | (self) -> String |
set.to_string | (self) -> String |
range.to_string | (self) -> String |
to_string
yaoxiang
to_string: (value) -> String任意の値をその文字列表現に変換します。
value—— 任意の型の値
戻り値:フォーマットされた文字列。引数が欠落している場合は "()" を返します。
yaoxiang
use std.assert
use std.convert
main: () -> Void = {
assert(convert.to_string(42) == "42")
assert(convert.to_string(true) == "true")
assert(convert.to_string(false) == "false")
}文字列自体は引用符で囲まれません:
yaoxiang
use std.assert
use std.convert
main: () -> Void = {
assert(convert.to_string("hi") == "hi")
}複合型は再帰的に展開されます(形式は脆弱さを避けるためにアサートしません):
yaoxiang
use std.assert
use std.convert
use std.string
main: () -> Void = {
s_list = convert.to_string([1, 2, 3])
assert(string.len(s_list) > 0)
s_dict = convert.to_string({})
assert(string.len(s_dict) > 0)
}型メソッド形式
汎用 convert.to_string 외에도、モジュールは次の型バインドの同名の関数をエクスポートし、動作は完全に同じです:
| エクスポート名 | シグネチャ |
|---|---|
int.to_string | (self) -> String |
float.to_string | (self) -> String |
bool.to_string | (self) -> String |
char.to_string | (self) -> String |
string.to_string | (self) -> String |
list.to_string | (self) -> String |
dict.to_string | (self) -> String |
tuple.to_string | (self) -> String |
set.to_string | (self) -> String |
range.to_string | (self) -> String |
これらのバインディングはランタイムの Stringable ディスパッチに使用され、日常のコードでは convert.to_string を直接使用すれば十分です。
Set型は言語層からすでに削除されており、set.to_stringは互換性のためのプレースホルダとして残されています。
関連
std.io——print/printlnの内部フォーマットは同じルールに従いますstd.string—— 文字列操作
