mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-30 01:44:37 +00:00
37 lines
537 B
Nim
37 lines
537 B
Nim
type T = object
|
|
x: int
|
|
s: string
|
|
|
|
var obj: T
|
|
var fieldAddr = addr(obj.x)
|
|
var objAddr = addr(obj)
|
|
|
|
# Integer tests
|
|
var field = fieldAddr[]
|
|
doAssert field == 0
|
|
|
|
var objDeref = objAddr[]
|
|
doAssert objDeref.x == 0
|
|
|
|
# Change value
|
|
obj.x = 42
|
|
|
|
doAssert field == 0
|
|
doAssert objDeref.x == 0
|
|
|
|
field = fieldAddr[]
|
|
objDeref = objAddr[]
|
|
|
|
doAssert field == 42
|
|
doAssert objDeref.x == 42
|
|
|
|
# String tests
|
|
obj.s = "lorem ipsum dolor sit amet"
|
|
var indexAddr = addr(obj.s[2])
|
|
|
|
doAssert indexAddr[] == '4'
|
|
|
|
indexAddr[] = 'd'
|
|
|
|
doAssert indexAddr[] == 'd'
|