diff options
author | flywind <43030857+xflywind@users.noreply.github.com> | 2020-07-09 04:21:30 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-08 22:21:30 +0200 |
commit | 3db6d9ea0c96782955923be4a24f49c1b2cc06fc (patch) | |
tree | 3851487f90920301f47a74d83edabd3d97576225 /lib | |
parent | 9016dd96ee1ab6d3a60925cee4ee815dd8627f1e (diff) | |
download | Nim-3db6d9ea0c96782955923be4a24f49c1b2cc06fc.tar.gz |
add docs and more tests for debug format strings (#14861)
* add debug format string * remove try except * add changelog * add docs and more tests * Update lib/pure/strformat.nim Co-authored-by: Juan Carlos <juancarlospaco@gmail.com> * minor Co-authored-by: Juan Carlos <juancarlospaco@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/strformat.nim | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/lib/pure/strformat.nim b/lib/pure/strformat.nim index 0ea784a43..c37b6b1c0 100644 --- a/lib/pure/strformat.nim +++ b/lib/pure/strformat.nim @@ -63,7 +63,6 @@ Formatting floats .. code-block:: nim import strformat - doAssert fmt"{-12345:08}" == "-0012345" doAssert fmt"{-1:3}" == " -1" doAssert fmt"{-1:03}" == "-01" @@ -81,6 +80,52 @@ Formatting floats doAssert fmt"{123.456:13e}" == " 1.234560e+02" +Debugging strings +================= + +``fmt"{expr=}"`` expands to ``fmt"expr={expr}"`` namely the text of the expression, +an equal sign and the results of evaluated expression. + +.. code-block:: nim + + import strformat + doAssert fmt"{123.456=}" == "123.456=123.456" + doAssert fmt"{123.456=:>9.3f}" == "123.456= 123.456" + + let x = "hello" + doAssert fmt"{x=}" == "x=hello" + doAssert fmt"{x =}" == "x =hello" + + let y = 3.1415926 + doAssert fmt"{y=:.2f}" == fmt"y={y:.2f}" + doAssert fmt"{y=}" == fmt"y={y}" + doAssert fmt"{y = : <8}" == fmt"y = 3.14159 " + + proc hello(a: string, b: float): int = 12 + let a = "hello" + let b = 3.1415926 + doAssert fmt"{hello(x, y) = }" == "hello(x, y) = 12" + doAssert fmt"{x.hello(y) = }" == "x.hello(y) = 12" + doAssert fmt"{hello x, y = }" == "hello x, y = 12" + + +Note that it is space sensitive: + +.. code-block:: nim + + import strformat + let x = "12" + doAssert fmt"{x=}" == "x=12" + doAssert fmt"{x =:}" == "x =12" + doAssert fmt"{x =}" == "x =12" + doAssert fmt"{x= :}" == "x= 12" + doAssert fmt"{x= }" == "x= 12" + doAssert fmt"{x = :}" == "x = 12" + doAssert fmt"{x = }" == "x = 12" + doAssert fmt"{x = :}" == "x = 12" + doAssert fmt"{x = }" == "x = 12" + + Implementation details ====================== |