我遇到了以下代码,无法弄清楚发生了什么.
def self.eof_packet?(data)
data[0] == ?\xfe && data.length == 5
end
Run Code Online (Sandbox Code Playgroud) ruby-1.9.2-p180 :154 > a = []
=> []
ruby-1.9.2-p180 :154 > h = {:test => "test"}
=> {:test=>"test"}
ruby-1.9.2-p180 :155 > a << h
=> [{:test=>"test"}]
ruby-1.9.2-p180 :156 > h.clear
=> {}
ruby-1.9.2-p180 :157 > a
=> [{}]
Run Code Online (Sandbox Code Playgroud)
我很困惑,特别是因为我可以更改哈希的元素,而不会影响数组.但是当我清除哈希时,数组会被更新并清除其哈希内容.谁能解释一下?
我是Ruby的初学者.所以我搜索了如何反转矩阵
1, 2, 3, 4 8, 9, 10, 11
4, 5, 6, 7 => 4, 5, 6, 7
8, 9, 10, 11 1, 2, 3, 4
Run Code Online (Sandbox Code Playgroud)
我试过了:
require 'matrix'
m = Matrix[ [1,2,3,4],[4,5,6,7], [8,9,10,11] ]
m_rev = Matrix.build(m.row_size, m.column_size){|row|
m.row_size.downto(0){|i|
row = m.row(i)
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个接受单个对象或对象集合的方法.检测传入的内容是否为Enumerable的正确方法是什么?我目前正在做以下(有效,但我不确定这是正确的方法):
def foo(bar)
if bar.respond_to? :map
# loop over it
else
# single object
end
end
Run Code Online (Sandbox Code Playgroud) 我知道" .uniq
"方法,但它在这里不起作用.我在一个数组中推送了Mechanize链接实例并应用了它,但它没有删除重复项.这是阵列..
#<Mechanize::Page::Link "2" "/inquiry/inquiry-results.jsp?d-16544-p=2&middleName=&firstName=&lastName=JOHN">,
#<Mechanize::Page::Link "3" "/inquiry/inquiry-results.jsp?d-16544-p=3&middleName=&firstName=&lastName=JOHN">,
#<Mechanize::Page::Link "4" "/inquiry/inquiry-results.jsp?d-16544-p=4&middleName=&firstName=&lastName=JOHN">,
......................................................................................
#<Mechanize::Page::Link "2" "/inquiry/inquiry-results.jsp?d-16544-p=2&middleName=&firstName=&lastName=JOHN">,
#<Mechanize::Page::Link "3" "/inquiry/inquiry-results.jsp?d-16544-p=3&middleName=&firstName=&lastName=JOHN">,
#<Mechanize::Page::Link "4" "/inquiry/inquiry-results.jsp?d-16544-p=4&middleName=&firstName=&lastName=JOHN">,
#<Mechanize::Page::Link "5" "/inquiry/inquiry-results.jsp?d-16544-p=5&middleName=&firstName=&lastName=JOHN">,
#<Mechanize::Page::Link "6" "/inquiry/inquiry-results.jsp?d-16544-p=6&middleName=&firstName=&lastName=JOHN">,
Run Code Online (Sandbox Code Playgroud)
但仍然在使用之后." .uniq
"结果是一样的.这是我正在使用的ruby代码..
page.links.each {|link|
page_links.push link if link.href =~ /inquiry-results/i and link.text =~ /[0-9]+/
}
Run Code Online (Sandbox Code Playgroud) 我想生成一个介于100和999之间的唯一随机数序列.我想确保没有生成两次数字,以确保每个数字都是唯一的.这就是我想出的.这是行不通的.当我运行它时,屏幕只是空白.谁能帮我?
products = {}
def random_key(products)
rand_key = rand(900) + 100
while products.has_key?(rand_key)
rand_key = rand(900) + 100
end
end
puts random_key(products)
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个rails应用程序,但目前显示的出生日期显示为正常的日期格式,但我很乐意在视图中显示年龄而不是
我在控制器中的方法如下,我的数据库中有一个列DOb用于出生日期
def age
@user = user
now = Time.now.utc.to_date
now.year - @user.dob.year - (@user.dob.to_date.change(:year => now.year) > now ? 1 : 0)
end
Run Code Online (Sandbox Code Playgroud)
它显示像DOB:23/5/2011,但我希望它可以在几年内成为年龄.
我如何设置一个验证器,检查年龄是否低于18岁?
我是Ruby的新手,请原谅可能的noob问题,但到目前为止谷歌一直没有帮助.
我在父类中定义了一个类常量
Items = [[1, 3, 5], [2, 4, 6]]
Run Code Online (Sandbox Code Playgroud)
然后我有一个子类,我想在Items数组中添加一个数组[1,5,9].你能以这种方式引用超级/重新定义常量吗?
就像是
Items = super.Items.concat([1, 5, 9])
Run Code Online (Sandbox Code Playgroud)
我想不需要使用附加项将Items定义复制到我的子类中.
我正在使用这个jQuery灯箱,这是一个羽毛灯,并不明白如何发射波纹管事件,因为我不好,所以我跳了一些人的帮助:
开放前:
beforeOpen: function(event){
}
Run Code Online (Sandbox Code Playgroud)
打开后:
afterOpen: function(event){
}
Run Code Online (Sandbox Code Playgroud)
我的代码工作:
<button id="openbox" href="#fl1">Load Lightbox on click event</button>
<div class="lightbox" id="fl1">
<h2>Delete Item</h2>
<div class="row">
<div class="twelve columns">
<strong>Are you Sure?</strong>
<br>blubblub?
</div>
</div>
<div class="right"> <a href="#" class="btn btn_gray no text_none" id="close_button">Close</a>
<a href="#" class="btn btn_red text_none">Yes</a>
</div>
</div>
$('#openbox').click(function() {
$.featherlight('#fl1');
});
Run Code Online (Sandbox Code Playgroud)
我的小提琴:http://jsfiddle.net/g68bZ/29/
谢谢.
我正在查看一些外部代码,并看到一行看起来像这样的Ruby代码
string_name = string_name[3..-1]
Run Code Online (Sandbox Code Playgroud)
是什么在[n..-x]
做什么或意味着什么呢?
谢谢.