相关疑难解决方法(0)

为什么Ruby不支持方法重载?

而不是支持方法重载Ruby覆盖现有方法.任何人都可以解释为什么语言是这样设计的?

ruby

142
推荐指数
5
解决办法
4万
查看次数

指定_(下划线)变量的位置和方式是什么?

大多数人都知道_IRB作为最后回报值的持有人的特殊含义,但这不是我在这里要求的.

相反,我问的是什么_时候用作普通旧Ruby代码中的变量名.在这里它似乎有特殊的行为,类似于"不关心变量"(àlaProlog).以下是一些说明其独特行为的有用示例:

lambda { |x, x| 42 }            # SyntaxError: duplicated argument name
lambda { |_, _| 42 }.call(4, 2) # => 42
lambda { |_, _| 42 }.call(_, _) # NameError: undefined local variable or method `_'
lambda { |_| _ + 1 }.call(42)   # => 43
lambda { |_, _| _ }.call(4, 2)  # 1.8.7: => 2
                                # 1.9.3: => 4
_ = 42
_ * 100         # => 4200 …
Run Code Online (Sandbox Code Playgroud)

ruby

76
推荐指数
2
解决办法
2万
查看次数

Ruby方法和可选参数

我正在使用Ruby on Rails,我正在尝试使用可选参数创建一个方法.显然,有很多方法可以做到这一点.我尝试将可选参数命名为哈希值,而不定义它们.输出是不同的.看一看:

# This functions works fine!
def my_info(name, options = {})
    age = options[:age] || 27
    weight = options[:weight] || 160
    city = options[:city] || "New York"
    puts "My name is #{name}, my age is #{age}, my weight is #{weight} and I live in {city}"
end


my_info "Bill"
-> My name is Bill, my age is 27, my weight is 160 and I live in New York
-> OK!

my_info "Bill", age: 28
-> My name is Bill, …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

33
推荐指数
4
解决办法
6万
查看次数

标签 统计

ruby ×3

ruby-on-rails ×1