糖果实验室杂货铺

Candy Lab

Moonscript的Map声明差异

6 months ago 0

Moonscript的Map声明差异

在Moonscript中,第一种table map的声明,对变量的赋值使用的是:“=”,,而第二种使用的方式是:“:”,可以通过下面moonc生成的代码,看出差异在那里:

使用:“=”

None
1
2
3
4
5
6
7
8
9
10
stats= {
        buffer_size_limit: t['journal_size_limit'],
        buffer_size: t['journal_size'],
    }


      local stats = {
        buffer_size_limit = t['journal_size_limit'],
        buffer_size = t['journal_size']
      }

使用:“:”

None
1
2
3
4
5
6
7
8
9
10
11
stats: {
        buffer_size_limit: t['journal_size_limit'],
        buffer_size: t['journal_size'],
    }

      local _ = {
        stats = {
          buffer_size_limit = t['journal_size_limit'],
          buffer_size = t['journal_size']
        }
      }

而上述这种差异,会在什么地方起作用呢?

None
1
2
3
4
5
6
7
8
9
10
11
12
json = require "cjson"
    util = require "cjson.util"

    stats= {
        buffer_size_limit: t['journal_size_limit'],
        buffer_size: t['journal_size'],
    }

    json: {
       success: true
       message: json.encode(stats)
    }

在Cjson的encode时,如果选用的表变量是":"声明,基本是无法编码成json出来的,不出意外,返回的就是一个'null'。


糖果实验室

Openresty中文编程网
IKBC经典机械键盘
机械键盘领券优惠购买

Write a Comment