小编ibl*_*lue的帖子

Ruby中Array#map的隐式返回值

给出以下代码:

class MagicList
  def items=(array)
    @items = array.map{|x| x*2}
  end

  def items
    @items
  end
end

list = MagicList.new
returns = list.items=([1, 2, 3])

puts returns.inspect    # => [1, 2, 3]
puts list.items.inspect # => [2, 4, 6]
Run Code Online (Sandbox Code Playgroud)

我期望值returns[2, 4, 6],因为@items以及array.map{|x| x*2}两者都返回这个值.为什么[1, 2, 3]

ruby

1
推荐指数
1
解决办法
177
查看次数

检查表达式是否是预处理器的左值

是否有一个宏使用C预处理器检查表达式是否是一个lvalue(意思是我能做到&expression)?

示例:如果有一些int a;我调用IS_LVALUE(a)它应该评估为1,而IS_LVALUE(5)应该评估为0,所以我可以做#if IS_LVALUE(...) == 1

c c-preprocessor

1
推荐指数
1
解决办法
153
查看次数

MySQL限制函数使用

我有一个存储在MySQL中的函数,它通过用户的UUID访问敏感信息......是否可以锁定MySQL中的函数,以便它只能返回查询中的单个记录?我们的想法是,SELECT SENSITIVE_FUNCTION(UUID) FROM users;如果前端服务器出于任何原因而受到损害,则可以防止数据通过某种情况返回.

mysql sql limit

0
推荐指数
1
解决办法
2573
查看次数

为什么我的代码没有正确读取十六进制?

当我在IRB中运行以下代码时:

1.9.3p194 :001 > x = %w(?61 6C 6C 20 75 72 20 73 79 73 74 65 6D 73 20 62 65 6C 6F 6E 67 20 32 20 75 73)
1.9.3p194 :002 > puts x.map {|z| z.to_i(16)}.map(&:chr).join.inspect
Run Code Online (Sandbox Code Playgroud)

我明白了:

"\x00ll ur systems belong 2 us"
=> nil
Run Code Online (Sandbox Code Playgroud)

不过"61".to_i(16).chr"a",不"\x00".

那里发生了什么?

ruby irb

0
推荐指数
1
解决办法
129
查看次数

EventMachine和Live Reload

我正在运行一个使用eventmachine的守护进程.它必须具有100%的正常运行时间,即使我重新部署代码也是如此.所以我正在寻找零停机时间部署.

有没有办法让EventMachine重新加载代码而不会丢失连接?我想ConnectionHandler在一个单独的文件中定义我,然后重新加载它SIGHUP:

Signal.trap("HUP") do
  load "#{path}/connection_handler.rb"
end
Run Code Online (Sandbox Code Playgroud)

但这有缺点:

  • 它不会重新加载EventMachine本身(在gem更新的情况下需要它)
  • 我不知道这是否有效.

有什么建议?

ruby eventmachine

0
推荐指数
1
解决办法
232
查看次数

处理嵌套数组

给出以下代码(我显示一些有关预订的统计信息):

statistics = [["Germany", "EUR"], 23], [["Germany", "USD"], 42], [["Spain", "EUR"], 17]

statistics.each do |country_and_currency, number_of_bookings|
  country, currency = country_and_currency # <-- Ugly.

  puts "There are #{number_of_bookings} in #{currency} in #{country}"
end
Run Code Online (Sandbox Code Playgroud)

country_and_currency部分非常难看.我试过了... do |*(country, currency), number_of_bookings|,但这没用.

有没有一种优雅的方法来处理这个嵌套数组而不使用country_and_currency变量?

ruby

0
推荐指数
1
解决办法
46
查看次数

自动添加隐藏字段以形成

我想建立一个自定义表单生成器simple_form,里面加一些隐藏字段的形式,而不使用form.hidden_field.我注意到,utf8authenticity_token隐藏字段会自动添加到每个表单.

是否有类似的机制来添加另一个自定义隐藏字段,但仅限于由我的自定义表单生成器生成的表单

ruby-on-rails simple-form

0
推荐指数
1
解决办法
380
查看次数

在不传递指针的情况下修改函数的参数

我刚刚阅读了GMP(一个bignum图书馆)文档.它似乎能够修改函数的参数.例如,初始化整数的工作方式如下:

mpz_t integer;
mpz_init(integer);
// ... Do some stuff
mpz_clear(integer);
Run Code Online (Sandbox Code Playgroud)

mpz_init为整数分配内存,mpz_clear释放它.如果你必须传递一个指针,你可以修改函数参数(mpz_init(&integer)),但似乎这没有传递指针.这是如何运作的?

c

0
推荐指数
1
解决办法
78
查看次数

反向径向梯度

我试图手动缩小SVG.它使用两个相同的径向渐变,但颜色相反.

<radialGradient id="a">
  <stop offset="0"  stop-color="#aadee8"/>
  <stop offset=".2" stop-color="#94d7e7"/>
  <stop offset=".5" stop-color="#6dcce9"/>
  <stop offset=".8" stop-color="#28b1e6"/>
  <stop offset="1"  stop-color="#27ace2"/>
</radialGradient>

<!-- Same colors, but opposite direction as #a -->
<radialGradient id="b">
  <stop offset="0"  stop-color="#27ace2"/>
  <stop offset=".2" stop-color="#28b1e6"/>
  <stop offset=".5" stop-color="#6dcce9"/>
  <stop offset=".8" stop-color="#94d7e7"/>
  <stop offset="1"  stop-color="#aadee8"/>
</radialGradient>
Run Code Online (Sandbox Code Playgroud)

是否可以通过克隆创建反向副本a?我已经尝试了<radialGradient xlink:href="#a" gradientTransform="scale(-1)" />,但是没有成功.

svg

0
推荐指数
1
解决办法
50
查看次数

标签 统计

ruby ×4

c ×2

c-preprocessor ×1

eventmachine ×1

irb ×1

limit ×1

mysql ×1

ruby-on-rails ×1

simple-form ×1

sql ×1

svg ×1