mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 01:14:41 +00:00
94 lines
1.3 KiB
Nim
94 lines
1.3 KiB
Nim
discard """
|
|
output: '''
|
|
Hello!(x: 1, y: 2, z: 3)
|
|
(x: 1.0, y: 2.0)
|
|
'''
|
|
"""
|
|
|
|
# Test nested loops and some other things
|
|
|
|
proc andTest() =
|
|
var a = 0 == 5 and 6 == 6
|
|
|
|
proc incx(x: var int) = # is built-in proc
|
|
x = x + 1
|
|
|
|
proc decx(x: var int) =
|
|
x = x - 1
|
|
|
|
proc First(y: var int) =
|
|
var x: int
|
|
i_ncx(x)
|
|
if x == 10:
|
|
y = 0
|
|
else:
|
|
if x == 0:
|
|
incx(x)
|
|
else:
|
|
x=11
|
|
|
|
proc TestLoops() =
|
|
var i, j: int
|
|
while i >= 0:
|
|
if i mod 3 == 0:
|
|
break
|
|
i = i + 1
|
|
while j == 13:
|
|
j = 13
|
|
break
|
|
break
|
|
|
|
while true:
|
|
break
|
|
|
|
|
|
proc Foo(n: int): int =
|
|
var
|
|
a, old: int
|
|
b, c: bool
|
|
F_irst(a)
|
|
if a == 10:
|
|
a = 30
|
|
elif a == 11:
|
|
a = 22
|
|
elif a == 12:
|
|
a = 23
|
|
elif b:
|
|
old = 12
|
|
else:
|
|
a = 40
|
|
|
|
#
|
|
b = false or 2 == 0 and 3 == 9
|
|
a = 0 + 3 * 5 + 6 + 7 + +8 # 36
|
|
while b:
|
|
a = a + 3
|
|
a = a + 5
|
|
write(stdout, "Hello!")
|
|
|
|
|
|
# We should come till here :-)
|
|
discard Foo(345)
|
|
|
|
# test the new type symbol lookup feature:
|
|
|
|
type
|
|
MyType[T] = tuple[
|
|
x, y, z: T]
|
|
MyType2 = tuple[x, y: float]
|
|
|
|
proc main[T]() =
|
|
var myType: MyType[T]
|
|
var b: MyType[T]
|
|
b = (1, 2, 3)
|
|
myType = b
|
|
echo myType
|
|
|
|
var myType2: MyType2
|
|
var c: MyType2
|
|
c = (1.0, 2.0)
|
|
myType2 = c
|
|
echo myType2
|
|
|
|
main[int]()
|