小编saw*_*awa的帖子

UML图生成器

Ruby有一个很好的UML图生成器吗?我看到RailRoadyRailRoad,但他们需要Rails.

ruby gem uml

5
推荐指数
0
解决办法
247
查看次数

如果一个空字符串是真的有什么好处?

在Ruby中,""关于条件,空字符串是真的.我看到很多人都在为这个事实而苦苦挣扎.Ruby on Rails blank?是尝试克服这个问题的一种尝试.另一方面,当这种说明变得方便时,并不是立即显而易见的.是否有任何用例,这个事实变得方便,否则会出现理论上的问题?

ruby string boolean

5
推荐指数
2
解决办法
6331
查看次数

为什么ruby中的splat参数不是一直使用的?

我知道当我们不知道将传递的参数数量时,会使用splat参数.我想知道我是否应该一直使用splat.每当我传递参数时,使用splat参数是否有任何风险?

ruby splat

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

输出顺序

代码如下:

def a
  print "Function 'a' called\n"
  99
end

print "a=", a, "\n"
Run Code Online (Sandbox Code Playgroud)

生产:

Function 'a' called
a=99
Run Code Online (Sandbox Code Playgroud)

为什么function 'a' called先显示?我希望a=首先出现.

ruby

5
推荐指数
2
解决办法
87
查看次数

脂肪模型重构的最佳实践

我试图让我的胖子User模型不那么笨重.我正在使用值对象来表示它们的自定义值和操作,并且我坚持使用ActiveSupport::Concerns和模块.我读是一个灵感.

我把这样的帮助方法:

def is_a_wizard?
  power_level >= WIZARD_POWER
end

def just_became_a_wizard?
  power_level == WIZARD_POWER
end
Run Code Online (Sandbox Code Playgroud)

进入模块,并将它们作为一种扩展包含在内.但是,它很难阅读和维护,我在视图和控制器中都需要它们中的一些(例如用于向导身份验证).我应该把它们放在哪里?在使用它们时创建服务对象?

ruby refactoring ruby-on-rails

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

在Ruby中删除额外的关键字参数

我定义了一个方法:

def method(one: 1, two: 2)
   [one, two]
end
Run Code Online (Sandbox Code Playgroud)

当我这样称呼时:

method one: 'one', three: 'three'
Run Code Online (Sandbox Code Playgroud)

我明白了:

ArgumentError: unknown keyword: three
Run Code Online (Sandbox Code Playgroud)

我不想逐个从散列中提取所需的键或排除额外的键.有没有办法绕过这种行为,除了定义这样的方法:

def method(one: 1, two: 2, **other)
  [one, two, other]
end
Run Code Online (Sandbox Code Playgroud)

ruby keyword-argument ruby-2.0

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

如何在Ruby中乘以两个数组?

例如,我有两个数组

a = [3, 2, 1]
b = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

我需要将它们相乘并创建一个c像这样的第三个数组

c = [3 * 1, 2 * 2, 1 * 3]
Run Code Online (Sandbox Code Playgroud)

哪种方法速度最快?我需要为大型阵列做这件事,时间很重要.

ruby arrays

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

如何在`&`-`和`往返下保留proc对象?

当我将一个数组*传递给一个方法,然后*在该方法中重建一个数组时,不保留数组的标识:

a = []
a.object_id # => 69846339548760
def bar *a; a.object_id end
bar(*a) # => 69846339537540
Run Code Online (Sandbox Code Playgroud)

但是,当我将proc转换为块&时将其传递给方法,然后&在方法中从块重构proc,则proc 的标识似乎会被保留:

pr = ->{}
pr.object_id # => 69846339666160
def foo ≺ pr.object_id end
foo(&pr) # => 69846339666160
Run Code Online (Sandbox Code Playgroud)

proc对象是如何保留的?它转换成块时不会丢失吗?这是一种保证行为吗?

ruby proc

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

在两个数组中找到不相交元素的有效方法是什么?

我有以下数组:

A = [1,2,3,4,5]
B = [2,6,7,1]
Run Code Online (Sandbox Code Playgroud)

我想找到不相交的元素,如下:

output = [3,4,5,6,7]
Run Code Online (Sandbox Code Playgroud)

我能够实现如下,

output = A + B - (A & B)
Run Code Online (Sandbox Code Playgroud)

但它效率低下,因为我正在添加两个数组,然后删除常用元素.它类似于寻找非交叉元素.我可以做得比这更好吗?如果是这样,怎么样?

ruby arrays

5
推荐指数
3
解决办法
539
查看次数

如何正确格式化'mccdougal'等字符串到'McDougal'

什么Ruby或Rails的DSL将格式的字符串"mccdougal""McDougal",并在同一时间离开的字符串"McDougal"作为是什么?

传递titleize"McDougal"以下结果:

"McDougal".titleize # => "Mc Dougal"
Run Code Online (Sandbox Code Playgroud)

ruby string ruby-on-rails

5
推荐指数
2
解决办法
127
查看次数