我是Ruby初学者.从本书中,我知道Ruby方法名称应该以小写字母或下划线开头.但我发现了不同的场景:
如果在类外部定义了一个方法,它只能以小写字母开头,如果你试图定义一个以大写字母开头的方法,Ruby会抱怨错误,例如:
define sayHi
puts "Hello"
end
sayHi # => Hello
Run Code Online (Sandbox Code Playgroud)
但是,以下代码不起作用:
define SayHi
puts "Hello"
end
SayHi
Run Code Online (Sandbox Code Playgroud)
它会产生错误:
:in `<main>': uninitialized constant SayHi (NameError)
Run Code Online (Sandbox Code Playgroud)如果在类中定义了一个方法,那么它可以以大写字母开头:
class Test
def SayHi
puts "hello"
end
end
t = Test.new
t.SayHi # => hello
Run Code Online (Sandbox Code Playgroud)有谁知道为什么#1在#2工作时不起作用?ruby方法名称的确切规则是什么?
while line = gets
next if line =~ /^\s*#/ # skip comments
break if line =~ /^END/ # stop at end
#substitute stuff in backticks and try again
redo if line.gsub!(/`(.*?)`/) { eval($1) }
Run Code Online (Sandbox Code Playgroud)
结束
我不明白的是这一行:
line.gsub!(/`(.*?)`/) { eval($1) }
Run Code Online (Sandbox Code Playgroud)