diff options
Diffstat (limited to 'doc/docs/zh/doc/README.md')
-rwxr-xr-x | doc/docs/zh/doc/README.md | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/doc/docs/zh/doc/README.md b/doc/docs/zh/doc/README.md index 0aea3d5..5cfe4e6 100755 --- a/doc/docs/zh/doc/README.md +++ b/doc/docs/zh/doc/README.md | |||
@@ -2121,6 +2121,54 @@ f2 arg1, arg2 | |||
2121 | </pre> | 2121 | </pre> |
2122 | </YueDisplay> | 2122 | </YueDisplay> |
2123 | 2123 | ||
2124 | ### 前置返回表达式 | ||
2125 | |||
2126 | 在深度嵌套的函数体中,为了提升返回值的可读性及编写便利性,我们新增了 “前置返回表达式” 语法。其形式如下: | ||
2127 | |||
2128 | ```moon | ||
2129 | findFirstEven = (list): nil -> | ||
2130 | for item in *list | ||
2131 | if type(item) == "table" | ||
2132 | for sub in *item | ||
2133 | if sub % 2 == 0 | ||
2134 | return sub | ||
2135 | ``` | ||
2136 | <YueDisplay> | ||
2137 | <pre> | ||
2138 | findFirstEven = (list): nil -> | ||
2139 | for item in *list | ||
2140 | if type(item) == "table" | ||
2141 | for sub in *item | ||
2142 | if sub % 2 == 0 | ||
2143 | return sub | ||
2144 | </pre> | ||
2145 | </YueDisplay> | ||
2146 | |||
2147 | 这个写法等价于: | ||
2148 | |||
2149 | ```moon | ||
2150 | findFirstEven = (list) -> | ||
2151 | for item in *list | ||
2152 | if type(item) == "table" | ||
2153 | for sub in *item | ||
2154 | if sub % 2 == 0 | ||
2155 | return sub | ||
2156 | nil | ||
2157 | ``` | ||
2158 | <YueDisplay> | ||
2159 | <pre> | ||
2160 | findFirstEven = (list) -> | ||
2161 | for item in *list | ||
2162 | if type(item) == "table" | ||
2163 | for sub in *item | ||
2164 | if sub % 2 == 0 | ||
2165 | return sub | ||
2166 | nil | ||
2167 | </pre> | ||
2168 | </YueDisplay> | ||
2169 | |||
2170 | 唯一的区别在于:你可以将函数的返回值表达式提前写在 `->` 或 `=>` 前,用以指示该函数应隐式返回该表达式的值。这样即使在多层循环或条件判断的场景下,也无需编写尾行悬挂的返回表达式,逻辑结构会更加直观清晰。 | ||
2171 | |||
2124 | ## 反向回调 | 2172 | ## 反向回调 |
2125 | 2173 | ||
2126 | 反向回调用于减少函数回调的嵌套。它们使用指向左侧的箭头,并且默认会被定义为传入后续函数调用的最后一个参数。它的语法大部分与常规箭头函数相同,只是它指向另一方向,并且后续的函数体不需要进行缩进。 | 2174 | 反向回调用于减少函数回调的嵌套。它们使用指向左侧的箭头,并且默认会被定义为传入后续函数调用的最后一个参数。它的语法大部分与常规箭头函数相同,只是它指向另一方向,并且后续的函数体不需要进行缩进。 |