草庐IT

proc_dir_entry

全部标签

ruby Dir.glob 之谜 : Where are the FNM_xxx flags described?

注意:这已经发布在RubyForum上几周前。我在这里交叉发布它,因为到目前为止我没有收到任何回复Dir.glob提供了一个可选参数,通常称为“标志”。我在哪里可以找到关于哪些标志是可能的文档?Ruby2.0文档只是说标志“与在文件.fnmatch”。查找File.fnmatch的文档,我只找到了解释这些是“FNM_xxx”标志,可以或运算一起。但是我找不到关于FNM_xxx标志的文档存在。这是在哪里描述的? 最佳答案 它实际上是在File::Constants中定义的,因此在同一目录下进行了记录。用ri查找:riFile::Con

ruby - 是否可以将参数绑定(bind)到(一元)Proc 对象?

(交叉贴:一周前我已经在RubyForum上问过这个问题,但还没有得到任何回复)。这是我目前拥有的(非常)简化的工作版本:#AclassSwithtwomethods,onewhichrequiresoneparameter,and#onewithoutparameters.classSdefinitialize(s);@ms=s;enddefs_method1(i);puts"s_method1#{i}#{@ms}";enddefs_method2;puts"s_method2#{@ms}";endend#AclassTwhichusesS,and"associates"itself

ruby - 从另一个作用域中定义的 Proc 引用局部变量

我想创建一个实例方法,它根据以多态方式覆盖的实现,根据另一个方法的返回值改变其行为。例如,假设下面的类被扩展并且pricing_rule应该根据产品而改变。classPurchasedefdiscount_priceprices=[100,200,300]pricing_rule.callendprotecteddefpricing_ruleProc.newdorate=prices.size>2?0.8:1total=prices.inject(0){|sum,v|sum+=v}total*rateendendendPurchase.new.discount_price#=>unde

ruby - 如何编写 ruby​​ 方法来接受和保存 lambda、 block 或 Proc?

在ruby​​中,我想在一个类上创建一个方法,它将任何类型的可调用对象保存到一个实例变量中。这包括lambda、block和Proc。例如:obj.save_callable(lambda{|x|x*2})assert_equal(10,obj.invoke_callable(5))obj.save_callable{|x|x*3}assert_equal(15,obj.invoke_callable(5))obj.save_callable(Proc.new{|x|x*4})assert_equal(20,obj.invoke_callable(5))我知道这可能是一个毛茸茸的区域。

ruby - `Enumerable#inject` 中的 Symbol 与 Proc

鉴于Enumerable#inject可以采用符号或block作为迭代中使用的方法,如对thisquestion的回答中所述,是否有任何理由在Enumerable#inject中将&与Symbol#to_proc结合使用?以下对返回相同的结果:[1,2,3,4,5].inject(:+)[1,2,3,4,5].inject(&:+)[:a,:b,:c].inject({a:{b:{c:1}}},:fetch)[:a,:b,:c].inject({a:{b:{c:1}}},&:fetch)是否存在使用符号和使用block(由&创建)有不同结果的用例?是否存在可以使用一种而不使用另一种的情

Ruby 可以像 c 调用函数那样调用方法或 proc 吗?

我是Ruby的新手。我在上大学,刚刚上了一门涵盖常规c语言的编程类(class)。我类的期末项目是一个slopintercept项目,这很容易,但我必须对所有事情都使用函数,例如:#include#includeintget_problem(int*choice){do{printf("Selecttheformthatyouwouldliketoconverttoslope-interceptform:\n");printf("1)Two-Pointform(youknowtwopointsontheline)\n");printf("2)Point-slopeform(youkno

ruby - 为什么我在 proc 和方法之间得到不同的结果?

使用proc和method,我得到以下不同的结果。这是为什么?proc{|x|}.arity#=>1proc{|x=1|}.arity#=>0deffoo(x=1);end;method(:foo).arity#=>-1 最佳答案 请注意,在ruby​​中,Method和Proc是两个不同的东西。对于Proc#arity,返回的数字是调用proc时不会忽略的参数的数量。对于您声明的第一个proc,它只接受一个参数,因此它的元数为1。对于您的第二个过程,它只有一个可选参数,因此它实际上根本不需要参数,所以它是0。对于Method#ar

Ruby - 如何使用 Hash#to_proc?

documentation是空的,但我想知道如何使用它才能知道它什么时候有用。 最佳答案 这样你就可以将哈希过程传递给map之类的东西。https://bugs.ruby-lang.org/issues/11653my_hash=->key{{a:1,b:2,c:3,d:4,e:5,f:6}[key]}my_hash[:a]#=>1[:e,:a,:b,:f,:c,:d].map(&my_hash)#hashisnowmappable#=>[5,1,2,6,3,4] 关于Ruby-如何使用

ruby - --css-dir 是否总是相对于项目目录?

我正在使用compass0.10.4我正在运行一个compass命令,我希望它把它的输出放到当我运行watch而不是项目目录时服务器。有什么方法可以指定绝对路径而不是路径相对于您希望css输出到的目录?我正在尝试将编译后的css输出到目录:/home/leeand00/leeand00.com/wp-content/themes/coffeeSunrise而是输出到/home/leeand00/leeand00.com/wp-content/themes/coffeeSunrise我尝试使用--css-指定编译后的css输出目录dir在命令行上。我还尝试将css_dir的值更改为/ho

ruby - 在 Ruby 中如何知道 Proc 是不是 lambda

假设我创建了一个lambda实例,稍后我想查询该对象以查看它是proc还是lambda。如何做到这一点?.class()方法不起作用。irb(main):001:0>k=lambda{|x|x.to_i()+1}=>#irb(main):002:0>k.class()=>Proc 最佳答案 Ruby1.9.3及更高版本您正在寻找Proc#lambda?方法。k=lambda{|x|x.to_i+1}k.lambda?#=>truek=proc{|x|x.to_i+1}k.lambda?#=>false1.9.3之前的解决方案我们将制