Fix #15806
This commit is contained in:
parent
1978b91202
commit
d0dda9efab
1 changed files with 30 additions and 1 deletions
|
|
@ -8,7 +8,7 @@ Nim Manual
|
||||||
.. contents::
|
.. contents::
|
||||||
|
|
||||||
|
|
||||||
"Complexity" seems to be a lot like "energy": you can transfer it from the
|
"Complexity" seems to be a lot like "energy": you can transfer it from the
|
||||||
end-user to one/some of the other players, but the total amount seems to remain
|
end-user to one/some of the other players, but the total amount seems to remain
|
||||||
pretty much constant for a given task. -- Ran
|
pretty much constant for a given task. -- Ran
|
||||||
|
|
||||||
|
|
@ -313,6 +313,35 @@ it was not case-sensitive and underscores were ignored and there was not even a
|
||||||
distinction between ``foo`` and ``Foo``.
|
distinction between ``foo`` and ``Foo``.
|
||||||
|
|
||||||
|
|
||||||
|
Stropping
|
||||||
|
---------
|
||||||
|
|
||||||
|
`Stropping <https://en.wikipedia.org/wiki/Stropping_(syntax)>`_
|
||||||
|
allows the same letter sequence to be used both as a keyword and as an identifier, and simplifies parsing.
|
||||||
|
For example, allowing a variable named `if` without clashing with the keyword `if`.
|
||||||
|
In Nim, this is achieved via backticks, allowing any reserved word to be used as an identifier.
|
||||||
|
|
||||||
|
Examples
|
||||||
|
|
||||||
|
.. code-block:: nim
|
||||||
|
var `var` = "Hello Stropping"
|
||||||
|
|
||||||
|
.. code-block:: nim
|
||||||
|
type Type = object
|
||||||
|
`int`: int
|
||||||
|
|
||||||
|
let `object` = Type(`int`: 9)
|
||||||
|
assert `object` is Type
|
||||||
|
assert `object`.`int` == 9
|
||||||
|
|
||||||
|
var `var` = 42
|
||||||
|
let `let` = 8
|
||||||
|
assert `var` + `let` == 50
|
||||||
|
|
||||||
|
const `assert` = true
|
||||||
|
assert `assert`
|
||||||
|
|
||||||
|
|
||||||
String literals
|
String literals
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue