Ruby之入门学习
Ruby是一种跨平台、面向对象的动态类型编程语言,Ruby是一种注重均衡的语言,它体现了表达的一致性和简单性,接下来我们就通过一段代码来了解Ruby。
Ruby代码示例:
class Robot
def say(words)
puts words
end
def say_hello
say("hello")
end
end
my_robot = Robot.new
my_robot.say_hello
不然看出,这段示例代码实现了显示hello的功能,首先,声明一个Robot类,并定义了两个函数,其中函数say_hello又调用了函数say(words)。当我们创建一个实例对象时,我们就可以调用say_hello方法,此时就会打印出hello。
当然,我们也可以为say函数预留字符串
class Robot
def say(words = "Hello World!")
puts #{words}
end
def say_hello
say("hello")
end
end
my_robot = Robot.new
my_robot.say_hello
这样当say函数没有传入参数时可以打印预留字符串“Hello World”。#{name}是Ruby用来往字符串中插入信息的方法。
我们在其他语言中都有声明一个实例变量的方法,而Ruby声明实例变量的方法是利用@,接下来用一段代码来了解Ruby是如何声明一个实例变量的
class Robot
def initialize (name = "World")
@name = name
end
def say_hi
puts "Hi #{@name}!"
end
end
@name这就是一个实例变量,我们可以在函数say_hi中使用它。接下来我们演示一下使用它的过程
my_robot = Robot.new("China")
my_robot.say_hi
这种情况下,因为我们传人了参数"China"代替了预留的字符串"World",所以会打印出Hi China!。
在Ruby里我们可以把一个类打开然后修改它,这些改变会对以后生成的甚至已经生成的对象产生即时效果。下面我们就来学习一下Ruby是如何打开一个类并修改它的,之前我们已经创建了一个类Robot,现在我们需要修改它
class Robot
attr_accessor :name
end
这段代码就是往我们之前申明的Robot类中添加了一个新方法,attr_accessor会自动为我们定义两个新函数,name用来读取变量的值,name=用来给变量赋值,个人感觉这个跟objective-c里面的类别有相似之处,而attr_accessor跟objective-c里面的@property属性也有相似之处,不知道是否有何本质上的区别还望有大神指正。