当前位置: 首页 > 编程笔记 >

Ruby中的方法(函数)学习总结

洪照
2023-03-14
本文向大家介绍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接收html" target="_blank">返回的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

 类似资料:
  • 本文向大家介绍Ruby中的变量学习总结,包括了Ruby中的变量学习总结的使用技巧和注意事项,需要的朋友参考一下 Ruby中的变量有几种形式,分别是局部变量、实例变量、类变量、全局变量,对于初学者来说,常常容易搞混,尤其像本人这种做java的,理解起来还是头痛,经过仔细辨别学习,将这几种变量的差异及使用场景总结如下: 一、命名方式 1.局部变量:小写字母或者“_”开头,如user,解释器解释到时才开

  • 本文向大家介绍Ruby的基本语法学习总结,包括了Ruby的基本语法学习总结的使用技巧和注意事项,需要的朋友参考一下 1、关键字 关键字不能用于定义变量或者常量,module,class,def , undef,defined?,if ,then,else,elsif,case ,when,unless,for,in,while ,until,next,break,do,redo ,retry,yi

  • 本文向大家介绍Python3.2中的字符串函数学习总结,包括了Python3.2中的字符串函数学习总结的使用技巧和注意事项,需要的朋友参考一下 Sequence Types sequence类型有六种:strings, byte sequences (bytes objects), byte arrays(bytearray objects), list, tuple, range objects

  • 本文向大家介绍Lua中的元表与元方法学习总结,包括了Lua中的元表与元方法学习总结的使用技巧和注意事项,需要的朋友参考一下 前言 元表对应的英文是metatable,元方法是metamethod。我们都知道,在C++中,两个类是无法直接相加的,但是,如果你重载了“+”符号,就可以进行类的加法运算。在Lua中也有这个道理,两个table类型的变量,你是无法直接进行“+”操作的,如果你定义了一个指定的

  • 本文向大家介绍Ruby创建数组方法总结,包括了Ruby创建数组方法总结的使用技巧和注意事项,需要的朋友参考一下 程序经常需要管理变量集合。例如,管理日历的程序必须有一周的天数列表。每天必须存储在一个变量中,它们的列表可以存储在一个数组变量中。通过这个数组变量,您可以访问每一天。 创建空数组 您可以通过创建一个新的数组对象并将其存储在一个变量中来创建一个空数组。这个数组将为空;您必须用其他变量填充它

  • 本文向大家介绍C# 函数覆盖总结学习(推荐),包括了C# 函数覆盖总结学习(推荐)的使用技巧和注意事项,需要的朋友参考一下 覆盖类成员:通过new关键字修饰虚函数表示覆盖该虚函数。 一个虚函数被覆盖后,任何父类变量都不能访问该虚函数的具体实现。 public virtual void IntroduceMyself(){...}//父类虚函数 public new void IntroduceMy