为什么这个方法的返回部分不起作用

国家统计局

我正在尝试编写一个返回新值的方法。以下代码是从这里修改的

| stripChars |
stripChars := [ :string :chars |    
    str := string reject: [ :c | chars includes: c ].
    str displayNl.          "THIS WORKS."
    ^ str                   "THIS DOES NOT WORK."
].

newstr := stripChars 
    value: 'She was a soul stripper. She took my heart!'
    value: 'aei'.
newstr displayNl.

虽然上面的函数创建了新的字符串并显示出来,但是在返回或接收返回的新字符串时会出错:

$ gst make_fn_ques.st
Sh ws  soul strppr. Sh took my hrt!
Object: 'Sh ws  soul strppr. Sh took my hrt!' error: return from a dead method context
SystemExceptions.BadReturn(Exception)>>signal (ExcHandling.st:254)
SystemExceptions.BadReturn class(Exception class)>>signal (ExcHandling.st:151)
String(Object)>>badReturnError (Object.st:1389)
UndefinedObject>>executeStatements (make_fn_ques.st:10)
nil

问题出在哪里,如何解决?谢谢你的帮助。

杰伊克

^ str

不从块(stripChars)返回,而是从封闭方法返回(非本地返回)。

显然 GNU Smalltalk 不允许您从以这种方式传递给 gst 的脚本返回。

只需删除 ^,并仅保留str作为块的最后一个表达式。这将导致str成为块的返回值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么这个try / catch方法不起作用?

来自分类Dev

为什么这个for()循环不起作用?

来自分类Dev

为什么这个jQuery不起作用?

来自分类Dev

为什么这个jQuery不起作用?

来自分类Dev

为什么这个for()循环不起作用?

来自分类Dev

为什么这个removeDuplicate不起作用?

来自分类Dev

为什么“这个”不起作用?

来自分类Dev

为什么这个sed不起作用?

来自分类Dev

为什么这个填充不起作用?

来自分类Dev

为什么这个 .htaccess 不起作用?

来自分类Dev

为什么这个 Python 代码不起作用?它不返回任何输出

来自分类Dev

为什么返回getElementsBy **不起作用?

来自分类Dev

为什么findOne()在withTracker()部分中不起作用,但在render()方法中却起作用?

来自分类Dev

为什么这个美元符号构造不起作用?

来自分类Dev

为什么这个角度滤波器不起作用

来自分类Dev

为什么这个简单的enable_if不起作用?

来自分类Dev

为什么这个投影矩阵不起作用?

来自分类Dev

为什么这个阴影在Firefox中不起作用?

来自分类Dev

为什么这个简单的搜索不起作用?

来自分类常见问题

为什么这个jQuery click函数不起作用?

来自分类Dev

为什么这个简单的REGEX不起作用?

来自分类Dev

为什么这个Xpath htmlagilitypack选择不起作用

来自分类Dev

为什么这个简单的onclick函数不起作用

来自分类Dev

为什么这个简单的ave函数不起作用

来自分类Dev

为什么这个php查询不起作用?

来自分类Dev

为什么这个简单的内容滑块不起作用?

来自分类Dev

为什么这个javascript装饰功能不起作用?

来自分类Dev

为什么这个CSS文件不起作用

来自分类Dev

为什么这个简单JAX RS示例不起作用?

Related 相关文章

热门标签

归档