小编Jer*_*ith的帖子

为什么清除我的哈希值,也清除我的哈希数组?

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 arrays hash

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

为什么ary.each会转储对象的所有内容?

foo是一个对象数组,bar是该对象的一个​​属性.

(rdb:1) foo.bar.map{|v| bar.v }
["a", "b", "c", "d", "e", "f"]


(rdb:1) foo.bar.each{|v| p bar.v }
[massive outpouring of object attributes]
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

如何在数组中找到最大值的位置?

如果我有

ary = [7, 8, 0, 1, nil, 6]
Run Code Online (Sandbox Code Playgroud)

如何在数组中找到最大值的位置?我可以做到这一点,但它需要不止一行.

ruby ruby-on-rails

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

突然我得到错误"无法读取termcap数据库"

从RVM切换到系统ruby后,我不断收到此错误.它似乎没有影响任何东西,但当我尝试安装gem或使用irb时弹出.关于如何修复此问题的任何想法?这是在Mac 10.7上.

linux macos terminal

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

创建文件夹有什么影响,它是一个自动命名空间吗?

我有两个问题.

问题1.

我一直认为文件夹是一个自动命名空间,但我只是回过头来重构一些代码,结果是这样的:

  • 一个名为formatter的文件夹
  • 包含对文件夹中所有文件的引用的文件formatter.rb
  • 格式化程序/ formatter.rb文件,它具有类Formatter,不引用名称空间
  • 继承自Formatter类的其他3个类:FooFormatter,BarFormatter,BazFormatter,没有对名称空间的引用
  • 一个ActionFormatter类,它不从类Formatter继承,并且没有对命名空间的引用

让我感到惊讶的是,我不需要像过去那样在每个文件周围创建命名空间.喜欢:

Module Formatter
  Class ActionFormatter
Run Code Online (Sandbox Code Playgroud)

这是因为存在于此文件夹中暗示了Module Formatter吗?在调用它时,我仍然需要将它作为Formatter :: ActionFormatter引用.但是为什么FooFormatter不需要这个参考.

问题2.

一切似乎都有效,但我收到了这个警告:

警告:在我所拥有的行上格式化Formatter :: FormatAction引用的常量FormatAction

@formatter = Formatter::ActionFormatter
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

ruby ruby-on-rails

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

如何返回阵列中可能存在的一组序列号?

如果我有一个排序数组,我如何找到序列号?顺便说一句,这是用于确定扑克牌是否是直线牌.数组中的重复项已被删除.我可以做到这一点,但这将是一个多行方法,我认为可能有一个使用Enumerable方法的快速单行.

例如:

FindSequence([9,8,7,5,4]) = [9,8,7]
FindSequence([4,2,0]) = nil
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

尝试破解AWS IOS SDK,使其适用于OSX.我收到这个错误

我已经删除了UIKit框架的导入,现在我收到了这个错误.我是否必须以某种方式重新编译框架?这不是真的给我任何东西......

如果它意味着什么,我能够在IOS中运行SDK示例,因此没有任何我不满足的系统要求.

ld: warning: ignoring file /Developer/SDKs/MacOSX10.7.sdk/Library/Frameworks//AWSiOSSDK.framework/AWSiOSSDK, missing required architecture x86_64 in file
Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_AmazonS3Client", referenced from:
      objc-class-ref in Constants.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

c objective-c

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

在引发异常时如何获取整个错误堆栈?

我有以下代码,用于在遇到错误时显示应用程序状态的报告.

begin
    ... # makes calls to lower level instances
rescue
    send_report
end

def send_report
  str = ""
  str.concat("#{$!}\n\r")
  str.concat("Report ----------\n\r")
  ...
  raise str
end
Run Code Online (Sandbox Code Playgroud)

问题是$!只给我一行错误,没有任何通常的堆栈跟踪.一个示例错误是:

DEBUG - undefined method `to_sym' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

这显示没有文件名或行号或任何上下文.如何添加?

ruby ruby-on-rails

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

使用Mongoid查询语法与Activerecord

我有一个难以理解的难题.

在rails控制台中,如果我使用

@o = ObjName.where(o_id: "VAL")
Run Code Online (Sandbox Code Playgroud)

我没有得到一个返回的对象.我得到了这个:

 => #<Mongoid::Criteria
  selector: {:conditions=>{:site_id=>"PST"}},
  options:  {},
  class:    Site,
  embedded: false>
Run Code Online (Sandbox Code Playgroud)

但如果我使用:

@o = ObjName.first(:conditions => {:o_id => "VAL"})
Run Code Online (Sandbox Code Playgroud)

我做.在Mongoid中使用函数,我的模型包括Mongoid.所以我不明白为什么这不起作用.

ruby ruby-on-rails mongodb

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

从一组正则表达式中查找正则表达式匹配

def match_line regex
    @line.match(regex) if !regex.is_a?(Array)
    regex.each {|rgx| 
        results = @line.match(rgx) 
        return results if !results.nil? 
    }
    return nil
end
Run Code Online (Sandbox Code Playgroud)

这看起来像是可以用一行惯用的方式完成的,我只是没有看到如何.

ruby ruby-on-rails

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

标签 统计

ruby ×8

ruby-on-rails ×7

arrays ×1

c ×1

hash ×1

linux ×1

macos ×1

mongodb ×1

objective-c ×1

terminal ×1