|  
      Nim代码会编译成C语言的代码,再编译成本地机器码,不依赖于虚拟机, 
      而且生成的可执行文件比较小,不依赖于其他库,分发起来比较方便 
       
      拥有一个“非追踪式”的垃圾收集器,这就非常适用于类似游戏这样的“弱实时”系统 
       
      让程序员拥有直接操纵内存和访问硬件的权力(手动管理的内存有别于垃圾收集器可收集的内存) 
       
      零开销的迭代器 
       
      Cross-module inlining(这是跨模块代码嵌入吗?不知道怎么翻) 
       
      实现了动态方法绑定,但并没有用到虚拟方法表 
       
      (virtual method table,这是在黑.NET吧) 
       
      编译期评估用户自定义的方法 
       
      无用代码自动消除 
       
      直接在栈上为实例、对象、数组分配空间 
      | 
|  
      var name: string = readLine(stdin) 
       | 
|  
      var name = readLine(stdin) 
       | 
| 
       var path = r"C:\program files\nim" 
      | 
| 
       var str = """这是我的大段文本 
      
       我换了一行 
      
       我又换了一行 
      
       就算有反斜杠,\,也不会被当作转义符""" 
      | 
| 
       #这是一行注释 
      
       var name = readLine(stdin) 
      | 
|  
      var name = readLine(stdin)   
      ##这是行尾注释 
      | 
| 
       var x,y:int  
      | 
| 
       var  
      
           x , y : int 
      
           i , z :  string 
      | 
| 
       var x , y = 3 
      | 
| 
       const x = 4 
      | 
| 
       const  
      
           x = 4 
      
           y = x+5 
      
           z = "allen" 
      | 
| 
       const input = readLine(stdin) # Error: 运行期的值不能赋给const变量 
      
       let input = readLine(stdin)   # works:运行期的值可以赋给let定义的变量 
      | 
| 
       let name = readLine(stdin) 
      
       if name == "": 
      
         echo("Poor soul, you lost your name?") 
      
       elif name == "name": 
      
         echo("Very funny, your name is name.") 
      
       else: 
      
         echo("Hi, ", name, "!") 
      | 
| 
       let name = readLine(stdin) 
      
       case name 
      
       of "": 
      
         echo("Poor soul, you lost your name?") 
      
       of "name": 
      
         echo("Very funny, your name is name.") 
      
       of "Dave", "Frank": 
      
         echo("Cool name!") 
      
       else: 
      
         echo("Hi, ", name, "!") 
      | 
| 
       from strutils import parseInt 
      
       echo("A number please: ") 
      
       let n = parseInt(readLine(stdin)) 
      
       case n 
      
       of 0..2, 4..7: echo("The number is in the set: {0, 1, 2, 4, 5, 6, 7}") 
      
       of 3, 8: echo("The number is 3 or 8") 
      
       else: discard 
      | 
| 
       echo("What‘s your name? ") 
      
       var name = readLine(stdin) 
      
       while name == "": 
      
         echo("Please tell me your name: ") 
      
         name = readLine(stdin) 
      | 
| 
       echo("Counting to ten: ") 
      
       for i in countup(1, 10): 
      
         echo($i) 
      | 
| 
       echo("Counting to ten: ") 
      
       for i in 1..10: 
      
         echo($i) 
      | 
原文:http://www.cnblogs.com/liulun/p/4506551.html