3 ms·
> The Nim forum has recurring questions about deserializing JSON that only make sense if you assume Nim is runtime dynamic like Python. Nim is a statically ty
by dom96 6y ago
> The Nim forum has recurring questions about deserializing JSON that only make sense if you assume Nim is runtime dynamic like Python.
Nim is a statically typed Python, and actually the way you can deserialise JSON is very Python-like, so I'm not sure where you got this from. Here is an example:
Python:
>>> import json
>>> j = json.loads('{"foo": 42}')
>>> j["foo"]
42
Nim:
import json
let j = parseJson("{\"foo\": 42}")
echo(j["foo"]) # 42
https://play.nim-lang.org/#ix=2KpU https://play.nim-lang.org/#ix=2KpU
- beagle3 6y agoBut replace the last line with 3+j["foo"] in python (and respectively, echo (3+j["foo"]) in Nim), and the Python prints 45 whereas the Nim compiler greets you with ~40 lines of output asking you what exactly you meant. Just to clarify: I'm not complaining. I'm happy that the compiler bugs you to do 3+int(j["foo"]) if you're going to treat it as an int. But I don't consider Nim a statically typed Python. (Also: am a very satisfied owner of a dead-tree version of the Nim book. Thanks! Highly recommended. And dom96 is awesome in general)