可能重复:
map(&:name)在Ruby中意味着什么?
有什么东西survey.map(&:questions).flatten.compact叫做,所以我可以找到更多关于它们的信息:).这&:解决了什么问题,或者它究竟做了什么?它是否用于其他语言?
看看其他人的代码,在花括号块中包含一个额外的空间似乎很常见.这有什么理由吗?对我而言似乎增加了额外的击键以增加丑陋.特别是当事物嵌套时:
lambda { (1..5).map { |i| { :a => { :b => i } } } }
Run Code Online (Sandbox Code Playgroud)
出于某种原因,它看起来更简洁,更连贯:
lambda {(1..5).map {|i| {:a => {:b => i}}}}
Run Code Online (Sandbox Code Playgroud)
也许额外的空间是一些文本编辑器的副作用或有历史原因或什么?我没有在样式指南中看到这个问题,如果它像2个空格缩进我想遵循惯例,但如果没有充分的理由我想我会继续按照自己的方式做事.你更喜欢哪个?为什么?
我不知道正确的术语.我试图谷歌它,因为这个原因找不到任何东西.
我正在编写一个Ruby库,我想重写这些函数,因此它们的工作方式如下所示,因为我更喜欢它的可读性(块内?)
我有一个功能,这样做
@dwg = Dwg.new("test.dwg")
@dwg.line([0,0,0],[1,1,0])
@dwg.save
Run Code Online (Sandbox Code Playgroud)
我想重写它,所以它的工作方式就像这样
Dwg.new("test.dwg") do
line([0,0,0],[1,1,0])
save
end
Run Code Online (Sandbox Code Playgroud)
你能概括一下我的方式吗?
似乎我尝试过的代码都没有任何影响.我的目的是通过点击"确定"按钮关闭可能出现的任何和所有JavaScript提示.问题是,我的脚本对出现的提示没有影响.换句话说,它什么都不做.
这就是我所拥有的:
fx = FireWatir::Firefox.start(somepage)
fx.startClicker("OK")
fx.button(:id, "OK").click
fx.button(:id, "CONFIRM").click
Run Code Online (Sandbox Code Playgroud)
HTML:
<script type="text/javascript">
alert("Alert!");
window.confirm("Confirm?");
</script>
Run Code Online (Sandbox Code Playgroud)
提示中的文字可以改变,无论警报/确认提示内部是什么,我的意图是打OK.
PS:我正在运行Ubuntu.
我注意到在Ruby中,供应商API将结果作为数组传递是很常见的吗?Plain Old Objects(如Java中的POJO)不应该更像标准吗?如果我写自己的库不应该使用POJO PORO?
我有一个字符串,"1/16" 我想将其转换为浮点数并乘以它45.但是,我没有得到预期的结果.
我正在努力 script/console
>> "1/16".to_f
=> 1.0
>> "1/16".to_f*45
=> 45.0
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到理想的结果 2.81
更大的图片:我有这样的下拉:
<%=select_tag :volume, options_for_select(["", "1 g", "1/16 oz", "1/8 oz","1/4 oz",
"1/2 oz", "1 oz", "1/8 lb", "1/4 lb", "Single", "Multi 5" ], "N/A") %>
Run Code Online (Sandbox Code Playgroud)
每当用户选择oz值时,我想将它乘以45
我这样做:
first, *rest = params[:volume].to_s.split(/ /)
if rest.first=="oz"
@indprodprice = @prods.orig_price.to_i*first.to_f*28.3495
else
@indprodprice = @prods.orig_price.to_i*first.to_f*453.59237
end
Run Code Online (Sandbox Code Playgroud) 我不明白为什么有些人会在ruby中使用百分比语法.
例如,我正在阅读ruby插件指南,它使用如下代码:
%w{ models controllers }.each do |dir|
path = File.join(File.dirname(__FILE__), 'app', dir)
$LOAD_PATH << path
ActiveSupport::Dependencies.load_paths << path
ActiveSupport::Dependencies.load_once_paths.delete(path)
end
Run Code Online (Sandbox Code Playgroud)
每当我看到这样的东西时,我都要去查找百分比语法参考,因为我不记得%w的含义.
这种语法真的比较["models", "controllers"].each ...好吗?
我认为在后一种情况下,我更清楚的是我已经定义了一个字符串数组,但在前者中 - 特别是对于学习红宝石的人 - 它似乎并不那么清楚,至少对我而言.
如果有人可以告诉我,我在这里遗漏了一些关键点,那么请这样做,因为我很难理解为什么百分比语法似乎是绝大多数ruby程序员的首选.
给定以下资源定义:
map.resources :posts, :except => [:show]
map.post '/:year/:month/:slug, :controller => :posts, :action => :show
Run Code Online (Sandbox Code Playgroud)
我可以url_for使用以下语法为我工作:
<%= link_to @post.title, post_url(:year => '2010', :month => '02', :slug => 'test') %>
Run Code Online (Sandbox Code Playgroud)
但有没有办法让这项工作?
<%= link_to @post.title, @post %>
Run Code Online (Sandbox Code Playgroud)
目前它抛出此错误:
No route matches {:year=>#<Post id: 1, title: "test", (...)>, :controller=>"posts", :action=>"show"}
Run Code Online (Sandbox Code Playgroud)
显然它将@post对象传递给第一个路由参数(看起来像是一个Rails错误...).但我可以为我做这项工作吗?我要补充一点,搞乱default_url_options是一个死胡同.
仅在Rails 3.x中工作的解决方案是可以的,但我不想使用任何插件.
是否有最好的价值,以便我赢得最大比例的游戏?如果是这样,它是什么?
编辑:是否存在可以针对给定限制计算的确切获胜概率,与对手无关?(自大学以来我没有完成概率和统计).我有兴趣将其视为将其与模拟结果进行对比的答案.
编辑:修复了我的算法中的错误,更新了结果表.
我一直在玩一个改进的二十一点游戏,其中一些相当讨厌的规则调整来自标准规则.我将与标准二十一点规则不同的规则用于斜体,并为不熟悉的人提供二十一点规则.
一副牌由52张牌组成,以下13个值各有四张:
2,3,4,5,6,7,8,9,10,J,Q,K,A
卡的其他财产都不相关.
Ruby的表示形式是:
CARDS = ((2..11).to_a+[10]*3)*4
Run Code Online (Sandbox Code Playgroud)
我一直在接近这个如下:
这是在Ruby中实现的算法:
#!/usr/bin/env ruby
class Array
def shuffle
sort_by { rand }
end
def shuffle!
self.replace shuffle
end
def score
sort.each_with_index.inject(0){|s,(c,i)|
s+c > …Run Code Online (Sandbox Code Playgroud) 对不起这个菜鸟问题...让我们说:
class TestMe
attr_reader :array
def initialize
@array = (1..10).to_a
end
Run Code Online (Sandbox Code Playgroud)
结束
然后可以这样做:
>> a = TestMe.new
=> #<TestMe:0x00000005567228 @x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]>
>> a.array.map! &:to_s
=> ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
>> a.array
=> ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
Run Code Online (Sandbox Code Playgroud)
编辑我在某处读到暴露数组实例变量是"坏OO".如果这是真的,为什么?
ruby ×10
algorithm ×1
arrays ×1
collections ×1
firewatir ×1
formatting ×1
function ×1
getter ×1
javascript ×1
oop ×1
pojo ×1
probability ×1
rest ×1
syntax ×1
ubuntu ×1
watir ×1
whitespace ×1
yield ×1