summaryrefslogtreecommitdiff
path: root/doc/docs/zh/doc/assignment/assignment.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/docs/zh/doc/assignment/assignment.md')
-rw-r--r--doc/docs/zh/doc/assignment/assignment.md142
1 files changed, 142 insertions, 0 deletions
diff --git a/doc/docs/zh/doc/assignment/assignment.md b/doc/docs/zh/doc/assignment/assignment.md
new file mode 100644
index 0000000..49561fb
--- /dev/null
+++ b/doc/docs/zh/doc/assignment/assignment.md
@@ -0,0 +1,142 @@
1# 赋值
2
3  月之脚本中定义的变量是动态类型的,并默认为局部变量。但你可以通过 **local** 和 **global** 声明来改变声明变量的作用范围。
4
5```yuescript
6hello = "world"
7a, b, c = 1, 2, 3
8hello = 123 -- 访问现有的变量
9```
10<YueDisplay>
11
12```yue
13hello = "world"
14a, b, c = 1, 2, 3
15hello = 123 -- 访问现有的变量
16```
17
18</YueDisplay>
19
20## 执行更新
21
22&emsp;&emsp;你可以使用各式二进制运算符执行更新赋值。
23
24```yuescript
25x = 1
26x += 1
27x -= 1
28x *= 10
29x /= 10
30x %= 10
31s ..= "world" -- 如果执行更新的局部变量不存在,将新建一个局部变量
32arg or= "默认值"
33```
34<YueDisplay>
35
36```yue
37x = 1
38x += 1
39x -= 1
40x *= 10
41x /= 10
42x %= 10
43s ..= "world" -- 如果执行更新的局部变量不存在,将新建一个局部变量
44arg or= "默认值"
45```
46
47</YueDisplay>
48
49## 链式赋值
50
51&emsp;&emsp;你可以进行链式赋值,将多个项目赋予相同的值。
52
53```yuescript
54a = b = c = d = e = 0
55x = y = z = f!
56```
57<YueDisplay>
58
59```yue
60a = b = c = d = e = 0
61x = y = z = f!
62```
63
64</YueDisplay>
65
66## 显式声明局部变量
67
68```yuescript
69do
70 local a = 1
71 local *
72 print "预先声明后续所有变量为局部变量"
73 x = -> 1 + y + z
74 y, z = 2, 3
75 global instance = Item\new!
76
77do
78 local X = 1
79 local ^
80 print "只预先声明后续大写的变量为局部变量"
81 a = 1
82 B = 2
83```
84<YueDisplay>
85
86```yue
87do
88 local a = 1
89 local *
90 print "预先声明后续所有变量为局部变量"
91 x = -> 1 + y + z
92 y, z = 2, 3
93 global instance = Item\new!
94
95do
96 local X = 1
97 local ^
98 print "只预先声明后续大写的变量为局部变量"
99 a = 1
100 B = 2
101```
102
103</YueDisplay>
104
105## 显式声明全局变量
106
107```yuescript
108do
109 global a = 1
110 global *
111 print "预先声明所有变量为全局变量"
112 x = -> 1 + y + z
113 y, z = 2, 3
114
115do
116 global x = 1
117 global ^
118 print "只预先声明大写的变量为全局变量"
119 a = 1
120 B = 2
121 local Temp = "一个局部值"
122```
123<YueDisplay>
124
125```yue
126do
127 global a = 1
128 global *
129 print "预先声明所有变量为全局变量"
130 x = -> 1 + y + z
131 y, z = 2, 3
132
133do
134 global x = 1
135 global ^
136 print "只预先声明大写的变量为全局变量"
137 a = 1
138 B = 2
139 local Temp = "一个局部值"
140```
141
142</YueDisplay>