【发布时间】:2015-01-02 17:50:21
【问题描述】:
我在将一些 java 代码移植到 ruby 中获得了一些乐趣,我正在寻求有关如何最好地实现以下方法签名重载的指导?
使用 Ruby 的可选参数,我可以适应所有的重载,但这会导致不太理想的“条件”编码来确定我正在处理的参数。有什么更“像 Ruby 一样”的方式来处理这个问题?
# public void set (ISOComponent c)
# public void set(int fldno, String value)
# public void set (String fpath, String value)
# public void set (String fpath, ISOComponent c)
# public void set (String fpath, byte[] value)
# public void set (int fldno, byte[] value)
def set(iso_component: nil, field_number: -1, string_value: '', file_path: '', byte_array: nil)
【问题讨论】:
-
不幸的是,ruby 中没有方法签名重载。我能想到的唯一合理的替代方法是为每个签名设置单独的方法:
set_iso_component、set_field_number_and_string_value等。
标签: java ruby overloading optional-parameters