gpt4 book ai didi

ruby - 从另一个文件调用模块

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

我正在尝试将模块调用到主脚本中。我使用 require 链接文件。以下是我的代码:

module Ex36_method
def m_defense
puts "Do you want to play zone or man to man for this possession?"
print "> "
choice = $stdin.gets.chomp
if choice.include? "zone"
zone
elsif choice.include? "man to man"
m_rebound
else
dead("You failed to play defense")
end
end
def zone
puts "The opposition scores a 3!"
end
def m_rebound
puts "The ball rims out and you got a rebound!"
end
end

require_relative 'Ex36_method' 

def start
puts "You are in the final minute of game 7 of the NBA finals."
puts "You are down by 3 points."
puts "What do you do: take a 3 pointer that might tie or take a guaranteed 2?"
print "> "
choice = $stdin.gets.chomp
if choice.include? "3 pointer"
puts "You missed! The ball rims out but you got the rebound at 40 seconds."
pass
elsif choice.include? "2 pointer"
puts "You scored! 50 seconds on the clock. Now it's time for defense"
m_rebound
else
dead("Turnover")
end
end
def dead(why)
puts why, "The opposing team scores a 3 and you lose. Better luck next year!"
end
start

当我调用链接模块中的函数时,收到以下错误:

"ex36.rb:16:in `start': undefined local variable or method `m_rebound' for main:Object (NameError)
from ex36.rb:27:in `<main>'"

如有任何帮助,我们将不胜感激。

最佳答案

您已加载模块,但尚未将模块的方法包含到当前作用域中。添加包含语句:

require_relative 'Ex36_method'

include Ex36_method

def start
#...

关于ruby - 从另一个文件调用模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28552359/

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