aboutsummaryrefslogtreecommitdiff
path: root/spec/inputs
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2025-08-26 12:50:50 +0800
committerLi Jin <dragon-fly@qq.com>2025-08-26 12:50:50 +0800
commitd90857cc05cd0820a2057c547e95b02d24d15412 (patch)
tree7cd1fb7ecff4799140eb96d5c3d7f48a3c76edc7 /spec/inputs
parent99692899d1e793e2cbbaea03107cb0a5f5e5c452 (diff)
downloadyuescript-d90857cc05cd0820a2057c547e95b02d24d15412.tar.gz
yuescript-d90857cc05cd0820a2057c547e95b02d24d15412.tar.bz2
yuescript-d90857cc05cd0820a2057c547e95b02d24d15412.zip
Added function argument destructuring.
Diffstat (limited to 'spec/inputs')
-rw-r--r--spec/inputs/funcs.yue31
1 files changed, 31 insertions, 0 deletions
diff --git a/spec/inputs/funcs.yue b/spec/inputs/funcs.yue
index e647edc..6b1669b 100644
--- a/spec/inputs/funcs.yue
+++ b/spec/inputs/funcs.yue
@@ -193,4 +193,35 @@ do
193 func = (): -> check 123 193 func = (): -> check 123
194 print func! -- get nil 194 print func! -- get nil
195 195
196do
197 f = ({:a, :b, :c}) -> print a, b, c
198 f = (:a, :b, :c) -> print a, b, c
199 g = (x, :y) -> print x, y
200 i = ({a: ax = 0, b: by = 0}) -> print ax, by
201 j = (name, {id: uid = "n/a", :role = "guest"}) -> print name, uid, role
202 m = ({user: {:name, :age}, meta: {:ver = 1}}) -> print name, age, ver
203 m1 = ({user: {:name, :age}, :meta = {}}) -> print name, age, meta and meta.ver or "nil"
204 new = ({:name = "anon", :age = 0}) =>
205 @name = name
206 @age = age
207 set = ({:name = @name, :age = @age}) =>
208 @name = name
209 @age = age
210 logKV = ({:k, :v}, ...) ->
211 print "kv:", k, v
212 print "rest count:", select "#", ...
213 macro gen = (fname) -> |
214 #{fname} = ({:a, :b = 0}) -> print a, b
215 $gen foo
216 t1 = (:a, x) -> print a, x
217 t2 = (:a) -> print a
218 w = (
219 id
220 {:x = 0, :y = 0}
221 :flag
222 ) ->
223 print id, x, y, flag
224 g1 = ({:a, a: ax}) -> print a, ax
225 g4 = ({:a, :b, ...rest}) -> print a, b
226
196nil 227nil