查看: 1925|回复: 2

[已经解决] 這兩個腳本寫法有什麼區別

[复制链接]
梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2017-12-28 21:15:49 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
自己的一個用來找最大值的腳本
[pre lang="ruby"]
  def amax
    collect{|s|yield(s)}.max
  end[/pre]

不過實際使用的時候發現這兩種寫法都能返回正確結果
  1. alive_members.amax(&:ht)
  2. alive_members.amax &:ht
复制代码


那這兩種寫法有什麼區別嗎?(影響效率?在特定情況下存在出錯的可能?)
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
梦石
0
星屑
6891
在线时间
7027 小时
注册时间
2013-11-2
回帖
1263

开拓者剧作品鉴家

发表于 2017-12-28 21:46:37 | 显示全部楼层
这一看就知道是特么没读置顶的教程。
章节 1.4。读。

另外,不加括号会出错的情况:
[pre lang="ruby"]
arr = [1,2,3,4,5]
arr.inject(0) do |a, b| a += b end #输出正常
arr.inject 0 do |a, b| a += b end #输出正常
arr.inject(0){|a, b| a += b} #输出正常
arr.inject 0 {|a, b| a += b} #报错:语法错误
[/pre]
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

 楼主| 发表于 2017-12-29 23:54:59 | 显示全部楼层
RaidenInfinity 发表于 2017-12-28 21:46
这一看就知道是特么没读置顶的教程。
章节 1.4。读。


嘿嘿嘿
因为置顶和平常的帖子是分开的,所以没注意置顶又多了5个主题···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部