Ruby初始化
在下面的示例()中Ruby初始化,ruby,initialization,Ruby,Initialization,在下面的示例()中 def初始化(name=“World”)在做什么 @name=name在做什么?是否初始化变量name并将初始值设置为name 我没有在任何地方看到“World”的任何用法,因为我遵循了网站上的示例(更多代码),因此我对它的用法感到困惑 现在,让我们创建一个greeter对象并使用它: greeter = Greeter.new("Pat") greeter.say_hi # => Hi Pat! greeter.say_bye # => Bye Pat, com
@name=name
在做什么?是否初始化变量name
并将初始值设置为name
“World”
的任何用法,因为我遵循了网站上的示例(更多代码),因此我对它的用法感到困惑
现在,让我们创建一个greeter对象并使用它:
greeter = Greeter.new("Pat")
greeter.say_hi
# => Hi Pat!
greeter.say_bye
# => Bye Pat, come back soon.
理解像
@name
这样的实例变量和像name
这样的局部变量之间的差异很重要。它们不一样,但很容易混淆
初始化函数最好解释为:
# Define an initialize method with an argument called name that has
# a default value of "World"
def initialize(name = "World")
# Assign the value of the name variable, which only exists in the
# scope of this method, to the name instance variable which exists
# for the lifespan of this Greeter object.
@name = name
end
实例变量是Ruby面向对象编程的主干。它们是在不同方法调用之间持久化数据的最方便的方法
要执行默认行为,您只是无法指定名称
应该是什么:
greeter = Greeter.new
greeter.say_hi
理解像
@name
这样的实例变量和像name
这样的局部变量之间的差异很重要。它们不一样,但很容易混淆
初始化函数最好解释为:
# Define an initialize method with an argument called name that has
# a default value of "World"
def initialize(name = "World")
# Assign the value of the name variable, which only exists in the
# scope of this method, to the name instance variable which exists
# for the lifespan of this Greeter object.
@name = name
end
实例变量是Ruby面向对象编程的主干。它们是在不同方法调用之间持久化数据的最方便的方法
要执行默认行为,您只是无法指定名称
应该是什么:
greeter = Greeter.new
greeter.say_hi
1。def初始化(name=“World”)在做什么?
创建新实例时,如果未传递任何参数,则def initialize
将新实例的默认@name
属性设置为等于“World”
2。@name=name
在做什么?是否初始化变量name
并将初始值设置为name
?
@name
是一个实例变量,来自同一类的其他方法可以看到并使用它。在本例中,它采用传递给方法的名称
参数。有关更多信息,请参见实例变量
示例
在您的示例中,greeter=greeter.new(“Pat”)
,参数被定义为“Pat”
,因此“World”
的默认参数被忽略
1。def初始化(name=“World”)在做什么?
创建新实例时,如果未传递任何参数,则def initialize
将新实例的默认@name
属性设置为等于“World”
2。@name=name
在做什么?是否初始化变量name
并将初始值设置为name
?
@name
是一个实例变量,来自同一类的其他方法可以看到并使用它。在本例中,它采用传递给方法的名称
参数。有关更多信息,请参见实例变量
示例
在您的示例中,greeter=greeter.new(“Pat”)
,参数被定义为“Pat”
,因此“World”
的默认参数被忽略