使用" puts" vs"返回"在Ruby方法中

时间:2015-02-19 18:45:35

标签: ruby

已编辑以更好地说明问题:

我正在编写一种方法,将数字转换为英文字符串。例如:888将转换为"八百八十八"。

我应该使用哪两个选项以及为什么?

选项A(使用" puts"内部功能):

def convert_number_to_english number

    <code>

    puts number_in_english
end

convert_number_to_english 888

选项B(使用&#34;返回&#34;内部功能,稍后使用&#34; puts&#34;在调用函数之前):

def convert_number_to_english number

    <code>

   return number_in_english
end

puts convert_number_to_english 888

1 个答案:

答案 0 :(得分:3)

一般来说,我会尽量保持我的代码“纯净”。纯粹的&#39;,我的意思是没有额外的副作用。

在这种特定情况下,您的函数根据其名称要求输入一个数字并返回给定数字的英文可读字符串表示。我会避免在这个函数中做任何被认为是副作用的IO(putsFile.open等。我会选择return变体。

如果您的功能被称为print_converted_number,我会说可以puts代替return

基本上我所说的是你应该用你实际做的来命名你的功能。

注意:在Ruby中,通常可以省略大多数函数的return。在Ruby中,函数将自动返回最后评估的内容。