fix: stabilize runtime follow-up regressions
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
:sig
|
||||
String DTree::to_string(String default_value = "") const
|
||||
|
||||
:params
|
||||
default_value : returned when the node holds no usable text
|
||||
return value : the scalar content as text, or `default_value`
|
||||
|
||||
:see
|
||||
>types
|
||||
0_DTree
|
||||
to_s64
|
||||
to_f64
|
||||
to_bool
|
||||
to_json
|
||||
get_by_path
|
||||
|
||||
:content
|
||||
Reads a `DTree` value as text. This is a read accessor: it is `const`, never creates or modifies nodes, and dereferences internal references automatically.
|
||||
|
||||
`default_value` is returned when the value is missing or not text-convertible:
|
||||
|
||||
- the node is unset or holds an empty string (a missing key read via `get_by_path()` looks exactly like this)
|
||||
- the node is map-shaped (use `json_encode()` or `to_stringmap()` for those)
|
||||
- the node is an unresolvable reference
|
||||
|
||||
Other scalar kinds convert instead of falling back: `f64` values format with six decimal places (`std::to_string`), `bool` values become `(true)` / `(false)`, and pointers format as their numeric address.
|
||||
|
||||
## Example
|
||||
|
||||
```cpp
|
||||
String title = context.props["title"].to_string("Untitled");
|
||||
String theme = context.cfg.get_by_path("theme/key").to_string("light");
|
||||
```
|
||||
|
||||
The default argument replaces the older `first(x.to_string(), "fallback")` idiom.
|
||||
|
||||
## Related Concepts
|
||||
|
||||
- PHP: `$value ?? 'fallback'` / `strval()`
|
||||
- JavaScript: `String(value || "fallback")`
|
||||
Reference in New Issue
Block a user