gpt4 book ai didi

ruby - ArgumentError : wrong number of arguments (given 0, 预期 1) - Ruby

转载 作者:数据小太阳 更新时间:2023-10-29 08:35:58 24 4
gpt4 key购买 nike

我有一个测试套件(hellow_world_test.rb),它有以下内容

#!/usr/bin/env ruby
begin
gem 'minitest', '>= 5.0.0'
require 'minitest/autorun'
require_relative 'hello_world'
rescue Gem::LoadError => e
puts "\nMissing Dependency:\n#{e.backtrace.first} #{e.message}"
puts 'Minitest 5.0 gem must be installed for the xRuby track.'
rescue LoadError => e
puts "\nError:\n#{e.backtrace.first} #{e.message}"
puts DATA.read
exit 1
end

# Test data version:
# deb225e Implement canonical dataset for scrabble-score problem (#255)

class HelloWorldTest < Minitest::Test
def test_no_name
assert_equal 'Hello, World!', HelloWorld.hello()
end

def test_sample_name
assert_equal 'Hello, Alice!', HelloWorld.hello('Alice')
end

def test_other_sample_name
assert_equal 'Hello, Bob!', HelloWorld.hello('Bob')
end
end

__END__

在此基础上,我实现了如下代码

class HelloWorld
def self.hello
"Hello, World!"
end

def self.hello(named)
"Hello, #{named}!"
end
end

现在我的两个测试用例都通过了,第一个测试用例正在返回

ArgumentError: wrong number of arguments (given 0, expected 1) /Users/vijay/Codes/Ruby/ruby/hello-world/hello_world.rb:7:in hello'
hello_world_test.rb:21:in
test_no_name'

有人可以帮我解决这个问题吗?

最佳答案

Ruby 中没有参数重载方法。 hello 的第二个定义覆盖了第一个定义。无论如何,您只需使用一个具有默认参数值的方法就可以获得相同的行为。

def self.hello(named = 'World')
"Hello, #{named}!"
end

关于ruby - ArgumentError : wrong number of arguments (given 0, 预期 1) - Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40402115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com