小编Aje*_*i32的帖子

Ruby中集合VS数组的性能

在Ruby中,我正在构建一个构造并返回一个(可能很大)数组的方法,该数组应该不包含重复的元素.通过使用一个集合然后将其转换为数组,我会获得更好的性能吗?或者.uniq在返回之前调用我正在使用的数组会更好吗?或者使用&将项目附加到数组而不是+=?如果我确实使用了一个集合,那么<=>我放入集合的对象上的方法是否会对性能产生影响?(如果你不确定,你知道一种测试方法吗?)

ruby

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

一个类和Ruby中该类的单例之间的区别是什么?

好的,所以我想在Ruby中做一些元编程,我有点困惑.根据我读过的几篇文章(像这一篇),为了动态地将类方法添加到Ruby类中,你必须使用类的单例类:

class Klass
end

class << Klass
  self.define_method(:foo) { return "foo" }
end
Run Code Online (Sandbox Code Playgroud)

这是为什么,与此有何不同?

class Klass
  self.define_method(:foo) { return "foo" }
end
Run Code Online (Sandbox Code Playgroud)

(对不起,如果这个问题包含任何错误的假设.就像我说的,我有点困惑.)

ruby eigenclass

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

使用git,如果我合并一个分支然后删除该分支,那么个别提交会丢失吗?

git merge命令文档中,结果git merge topic如下所示:

      A---B---C topic
     /         \
D---E---F---G---H master
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它在我看来,如果我要删除topic以使我的分支列表保持整洁,那么提交A,B和C的所有记录都将丢失,只留下一个提交,H(并且可能会删除所有提交消息)来自A,B和C):

D---E---F---G---H master
Run Code Online (Sandbox Code Playgroud)

确实如此,如果是这样,我该如何预防呢?例如:

D---E---F---G---A---B---C master
Run Code Online (Sandbox Code Playgroud)

git

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

什么是运行时错误91,为什么它出现在我的Excel VBA脚本中?

好的,所以我试图在VBA for Excel中编写一个简单的脚本,根据用户在电子表格的单元格中选择的某个值来更改AutoFilter.到目前为止,它一直很好,但现在我收到以下错误,我无法弄清楚是什么导致它:

运行时错误'91':对象变量或未设置块变量

请记住,这是我第一次尝试在VBA中编写任何内容,因此我对该语言不是很熟悉.我对Excel非常熟悉,而且我了解其他几种编程语言(Java,JavaScript,Ruby,LUA).

这是我写的代码; 错误发生在第9行.

Private Sub Worksheet_Change(ByVal Target As Range)

    '' Review Level Changed ''
    If Target.Address = Worksheets("Sheet1").Range("review_level").Address Then

        ' MsgBox "You just changed " & Target.Address & " to " & Target.Value ' Debug
        Dim oldProtection As Protection
        If Worksheets("Sheet1").ProtectContents = True Then
            oldProtection = Worksheets("Sheet1").Protection ' It errors out here
            Worksheets("Sheet1").Unprotect
        End If

        If Target = "B" Then
            ActiveSheet.ListObjects("review_checklist").Range.AutoFilter Field:=2, _
                Criteria1:=Array("B", "C", "D"), Operator:=xlFilterValues
        ElseIf Target = "C" Then
            ActiveSheet.ListObjects("review_checklist").Range.AutoFilter Field:=2, …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

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

为什么"<<"和"+"与冻结的字符串对象的行为不同?

irb(main):009:0> a = "good"
=> "good"
irb(main):010:0> a = "good" + "morning"
=> "goodmorning"
irb(main):011:0> a = "good"
=> "good"
irb(main):012:0> a << " morning"
=> "good morning"
Run Code Online (Sandbox Code Playgroud)

到现在为止,两个concatenation运营商都运作良好.

irb(main):013:0> a = "good"
=> "good"

irb(main):014:0> a.freeze
=> "good"

irb(main):015:0> a.frozen?
=> true

irb(main):016:0> a << " welcome"
RuntimeError: can't modify frozen String
    from (irb):16
    from /usr/bin/irb:12:in `<main>'


irb(main):017:0> a = a +  " welcome"
=> "good welcome"
Run Code Online (Sandbox Code Playgroud)

但是对于一个frozen字符串,从中可以清楚地看到差异IRB,<<并且+表现不像他们应该的那样.谁能告诉我这个的原因?

ruby ruby-1.9.3

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

确定字符串是否包含Ruby中的Integer或Float

假设我得到一些字符串输入,我想知道它是否包含一个Integer或一个Float.

例如:

input_1 = "100"
input_2 = "100.0123"
Run Code Online (Sandbox Code Playgroud)

现在,让我们考虑以下内容:

input_1.respond_to?(:to_f) # => true 
input_1.is_a?(Float)       # => false
input_1.is_a?(Fixnum)      # => false
input_1.to_f?              # => 100.0

input_2.respond_to?(:to_i) # => true
input_2.is_a?(Integer)     # => false
input_2.is_a?(Fixnum)      # => false
input_2.to_i               # => 100
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我们无法确定字符串是否包含a Integer或a Float.Ruby中是否有办法确定字符串是否包含a FixnumFloat

ruby

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

标签 统计

ruby ×4

eigenclass ×1

excel ×1

excel-vba ×1

git ×1

ruby-1.9.3 ×1

vba ×1