首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将对象传递给ooRexx中的函数?

如何将对象传递给ooRexx中的函数?
EN

Stack Overflow用户
提问于 2018-04-17 02:57:38
回答 1查看 207关注 0票数 0

我是一个长期使用大型机的Rexx程序员,正在尝试ooRexx中的对象。结果令人惊讶。例如,下面是一个程序:

代码语言:javascript
复制
#!/usr/bin/rexx

a = .number~new(3.14)

say "a =" a
say "a~val =" a~val

call say_number a

exit 0

say_number:
procedure
parse arg num

    say "In say_number"
    say "num =" num
    say "num~val =" num~val

return

::class number public

::attribute val get public

::method init   ; expose val ; use arg val
::method new    ; expose val ; use arg val
::method string ; return "'"self~val"'"

结果是:

代码语言:javascript
复制
> number
a = '3.14'
a~val = 3.14
In say_number
num = '3.14'
    18 *-*   say "num~val =" num~val
     8 *-* call say_number a
REX0097E: Error 97 running /home/tony/bin/.scripts/number line 18:  Object method not found
REX0476E: Error 97.1:  Object "'3.14'" does not understand message "VAL"

在传递给say_number函数之前,该对象似乎正在被解析为其字符串值。奇怪!我漏掉了什么明显的东西吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-17 03:10:23

好吧,没多久。我在函数中将parse更改为use,一切都如预期的那样工作。根据参考手册:

使用ARG检索程序、例程、函数或方法中提供的参数对象,并将它们分配给变量或消息项赋值。 解析根据解析规则将来自不同源的数据分配给一个或多个变量。..。如果指定上限,则在解析前将要解析的字符串转换为大写。如果指定LOWER,则将字符串转换为小写。否则,不进行翻译。

可以推测,解析将参数转换为字符串,以便它可以根据请求(或默认情况)更改大小写。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49869172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档