diff options
| author | Li Jin <dragon-fly@qq.com> | 2025-08-26 12:50:50 +0800 |
|---|---|---|
| committer | Li Jin <dragon-fly@qq.com> | 2025-08-26 12:50:50 +0800 |
| commit | d90857cc05cd0820a2057c547e95b02d24d15412 (patch) | |
| tree | 7cd1fb7ecff4799140eb96d5c3d7f48a3c76edc7 /spec/inputs | |
| parent | 99692899d1e793e2cbbaea03107cb0a5f5e5c452 (diff) | |
| download | yuescript-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.yue | 31 |
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 | ||
| 196 | do | ||
| 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 | |||
| 196 | nil | 227 | nil |
