mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-30 09:54:49 +00:00
Fix #15806
This commit is contained in:
@@ -8,7 +8,7 @@ Nim Manual
|
||||
.. 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
|
||||
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``.
|
||||
|
||||
|
||||
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
|
||||
---------------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user