当前位置: 移动技术网 > IT编程>脚本编程>Ruby > print不自动换行,puts会自动换行第1/2页

print不自动换行,puts会自动换行第1/2页

2017年12月12日  | 移动技术网IT编程  | 我要评论
1.print不自动换行,puts会自动换行,一行不够写的话,可以加"\"进行连接 ruby 代码 puts 6/2 print 6/1 puts 'hello

1. 等价语句
单引号里是什么就是什么,会照着输出。
ruby 代码
a=5
b="hhhh"
print("a is ",a,"\n")
puts("a is #{a}")
puts('a is #{a}')
输出结果:
a is 5
a is 5
a is #{a} 
2. #ruby中如果一个类里有2个同名方法,总是后面的一个被执行

ruby 代码
#ruby支持缺省参数
def sum(a,b=5)
a+b
end
puts sum(3,6) #输出结果为:9
puts sum(3)#输出结果为8
#ruby支持可变参数
def sum(*num)
numsum = 0
num.each{|i| numsum += i}
return numsum
end
puts sum() #输出结果为0
puts sum(3,6)#输出结果为9
puts sum(1,2,3,4,5,6,7,8,9)#输出结果为45 
3. ruby中的实例变量,类变量,类方法
实例变量:每个实例独享,变量名用@开头
类变量:所有实例共享,变量名用@@开头,类似java里的static变量,但是在使用前必须要初始化。
类方法:不需要通过实例对象来调用。类方法定义方式: 类名.方法名,如:

ruby 代码
def studentclass.student_count
puts "aaa"
end 

如果在外部调用一个类里的常量,需要用到域作用符号"::"

4.ruby里的单例方法:给具体的某个实例对象添加方法,这个方法只属于这个实例对象的。这样的方法叫单例方法

定义单例方法,首先要生成一个实例对象,其次要在方法名前加上一个对象名和一个点号(.)

如:

ruby 代码
class person
def talk
puts "hi!"
end
end
p1 = person.new
p2 = person.new
def p2.talk #定义单例方法p2.talk
puts "here is p2."
end
def p2.laugh
puts "ha,ha,ha..."
end
p1.talk
p2.talk
p2.laugh
输出结果为:
hi!
here is p2.
ha,ha,ha... 
5.访问控制

ruby 代码
#访问控制
#public , protected, private
#public 方法,可以被定义它的类和其子类访问,可以被类和其子类的实例对象调用
#protected 方法,可以被定义它的类和其子类访问,不能被类和其子类的实例对象调用,但是 可以在类和其子类中制定给实例对象
#private 方法,可以被定义它的类和其子类访问,不能被类和其子类的实例对象调用,私有方法不能指定对象
#访问控制
#public , protected, private
#public 方法,可以被定义它的类和其子类访问,可以被类和其子类的实例对象调用
#protected 方法,可以被定义它的类和其子类访问,不能被类和其子类的实例对象调用,但是 可以在类和其子类中制定给实例对象
#private 方法,可以被定义它的类和其子类访问,不能被类和其子类的实例对象调用,私有方法不能指定对象
class person
public
def talk
puts "public:talk"
end
def speak
"protected:speak"
end
def laugh
"private:laugh"
end
protected :speak
private :laugh
def uselaughtest(another)
puts another.laugh #这里错误,私有方法不能指定对象
end
def usespeaktest(another)
puts another.speak #这里可以,,protected方法可以指定对象
end
end
class student < person
def uselaugh
puts laugh
end
def usespeak
puts speak
end
end
p1 = person.new
p1.talk
#p1.speak 实例对象不能访问protected方法
#p1.laugh 实例对象不能访问private方法
p2 = student.new
p2.uselaugh
p2.usespeak  
输出结果为:
public:talk
private:laugh
protected:speak

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网