[Ruby学习总结]Ruby中的方法

1、Ruby中方法名和变量名的命名规则一样(以小写字母开头,单词之间的分隔使用“_”,),不过可以在方法名后边带上!(重磅方法)或者?(布尔类型返回值)

2、方法的参数请使用(),参数都是局部变量,可以为这些参数设置默认值,带“*”的参数是可选动态参数,可以传入一个或者多个,如果有普通参数,也有可选参数,可选参数要放在最后,如下边示例代码

def read_book(chinese='水浒传',english='Jane Eyre',*others)
  puts "中文书籍:#{chinese},English book:#{english}"
  temp=''
  others.each do |o|
    temp<<o<<' '
  end
  puts "其他可选书籍:#{temp}"
  
end

read_book
# 输出:中文书籍:水浒传,English book:Jane Eyre
read_book('西游记','Rails','红楼梦','三国演义','封神演义','隋唐演义')
# 输出:
# 中文书籍:西游记,English book:Rails
# 其他可选书籍:红楼梦 三国演义 封神演义 隋唐演义

3、方法的返回值不需要进行声明,默认情况下最后一行代码为返回值,但是若有条件判断返回的情况,需要用return声明,如下示例代码

def late_for_work?(minutes)
  return true if minutes>=15
  false
end

late_for_work?(10)    #false
late_for_work?(15)    #true

4、重磅方法是指方法名后带“!”的方法,普通方法返回的是原对象的一个拷贝,而重磅方法返回的始终是原对象本身,如下边示例代码

x='hello'
y=x.upcase
puts "x:#{x},y:#{y}"   #输出:x:hello,y:HELLO   x的值未发生改变

x='hello'
y=x.upcase!
puts "x:#{x},y:#{y}"   #输出:x:HELLO,y:HELLO   x的值已经发生改变

5、方法中可以使用别名关键字“alias”生成方法的一个拷贝,即使原方法发生了变化,别名拷贝也不会发生变化,如下示例代码

def show_alias
  puts 'Before alias!'
end
alias alias_foo show_alias
def show_alias
  puts 'After alias!'
end
show_alias   #输出:After alias!
alias_foo    #输出:Before alias!

6、Ruby的方法可以一次性返回多个值,不过实质上只是表面看来是返回多个值,本质上是返回了一个数组,数组中存储多个返回值,接收时可以直接定义多个变量一次性接收,如下示例代码

def more_result_foo
	x=5
	y=x*x
	z=y-x+2
	return x,y,z		#返回x,y,z三个值
end
a,b,c=more_result_foo	#a,b,c接收返回的x,y,z
m=more_result_foo		#m接收返回的x,y,z
puts a,b,c				#输出:5 25 22
puts m					#输出:5 25 22
puts m.class			#输出:Array



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值