Skip to content

赋值

  月之脚本中定义的变量是动态类型的,并默认为局部变量。但你可以通过 localglobal 声明来改变声明变量的作用范围。

yuescript
hello = "world"
a, b, c = 1, 2, 3
hello = 123 -- 访问现有的变量
yue
hello = "world"
a, b, c = 1, 2, 3
hello = 123 -- 访问现有的变量

执行更新

  你可以使用各式二进制运算符执行更新赋值。

yuescript
x = 1
x += 1
x -= 1
x *= 10
x /= 10
x %= 10
s ..= "world" -- 如果执行更新的局部变量不存在,将新建一个局部变量
arg or= "默认值"
yue
x = 1
x += 1
x -= 1
x *= 10
x /= 10
x %= 10
s ..= "world" -- 如果执行更新的局部变量不存在,将新建一个局部变量
arg or= "默认值"

链式赋值

  你可以进行链式赋值,将多个项目赋予相同的值。

yuescript
a = b = c = d = e = 0
x = y = z = f!
yue
a = b = c = d = e = 0
x = y = z = f!

显式声明局部变量

yuescript
do
  local a = 1
  local *
  print "预先声明后续所有变量为局部变量"
  x = -> 1 + y + z
  y, z = 2, 3
  global instance = Item\new!

do
  local X = 1
  local ^
  print "只预先声明后续大写的变量为局部变量"
  a = 1
  B = 2
yue
do
  local a = 1
  local *
  print "预先声明后续所有变量为局部变量"
  x = -> 1 + y + z
  y, z = 2, 3
  global instance = Item\new!

do
  local X = 1
  local ^
  print "只预先声明后续大写的变量为局部变量"
  a = 1
  B = 2

显式声明全局变量

yuescript
do
  global a = 1
  global *
  print "预先声明所有变量为全局变量"
  x = -> 1 + y + z
  y, z = 2, 3

do
  global x = 1
  global ^
  print "只预先声明大写的变量为全局变量"
  a = 1
  B = 2
  local Temp = "一个局部值"
yue
do
  global a = 1
  global *
  print "预先声明所有变量为全局变量"
  x = -> 1 + y + z
  y, z = 2, 3

do
  global x = 1
  global ^
  print "只预先声明大写的变量为全局变量"
  a = 1
  B = 2
  local Temp = "一个局部值"