国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Ruby > 正文

Ruby中的方法(函數)學習總結

2020-10-29 19:43:43
字體:
來源:轉載
供稿:網友

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 容城县| 安泽县| 浦北县| 庆元县| 若羌县| 射阳县| 珲春市| 沁源县| 绵阳市| 东城区| 阳山县| 清苑县| 兴宁市| 亳州市| 蒙阴县| 托里县| 桐梓县| 白山市| 旺苍县| 谢通门县| 怀柔区| 广西| 民和| 岱山县| 土默特左旗| 肥城市| 深泽县| 咸宁市| 黔东| 麟游县| 张家口市| 巧家县| 勐海县| 潼关县| 延长县| 连城县| 金沙县| 静乐县| 南皮县| 红原县| 平乡县|