小编Abr*_*m P的帖子

Array.size()vs Array.length

两者有什么区别?

所以我知道这array.size()是一个功能而array.length属性.是否有用于使用其中一个的用例?是一个更有效(我会想象.length明显更快,因为它是一个属性而不是方法调用?)为什么一个人会使用较慢的选项?是否有某些浏览器与其中一个不兼容?

  var x = [];
  console.log(x.size());
  console.log(x.length);
  console.log(x.size()==x.length);
  x =[1,2,3];
  console.log(x.size());
  console.log(x.length);
  console.log(x.size()==x.length);
Run Code Online (Sandbox Code Playgroud)

将打印:

  0, 0, true
  3, 3, true
Run Code Online (Sandbox Code Playgroud)

javascript arrays

375
推荐指数
6
解决办法
67万
查看次数

在Ruby中调用动态方法

据我所知,有三种方法可以在Ruby中动态调用方法:

方法1:

s = SomeObject.new
method = s.method(:dynamic_method)
method.call
Run Code Online (Sandbox Code Playgroud)

方法2:

s = SomeObject.new
s.send(:dynamic_method)
Run Code Online (Sandbox Code Playgroud)

方法3:

s = SomeObject.new
eval "s.dynamic_method"
Run Code Online (Sandbox Code Playgroud)

通过对它们进行基准测试,我已经确定方法1是最快的,方法2是慢的,方法3是迄今为止最慢的.

我也发现,.call并且.send都允许调用私有方法,而eval不是.

所以我的问题是:有没有理由使用.sendeval?为什么你不总是只使用最快的方法?这些调用动态方法的方法有什么其他区别?

ruby metaprogramming dynamic-method

68
推荐指数
3
解决办法
3万
查看次数

什么是Haskell的融合?

我不时地在Haskell文档中注意到以下内容:(例如在Data.Text)中:

融合

什么是融合,我该如何使用它?

optimization haskell ghc stream-fusion

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

Haskell Stack从github安装包依赖

是否可以使用Haskell堆栈从github安装包的版本?

例如,在一个.cabal或一个stack.yaml文件中,如何在git repo/branch/revision中指向依赖?

haskell github dependency-management cabal haskell-stack

27
推荐指数
2
解决办法
4723
查看次数

在Angular js指令中发布链接与预链接

如下所述:

http://docs.angularjs.org/guide/directive

Angular js指令采用两种不同类型的链接函数:

预链接功能在链接子元素之前执行.由于编译器链接功能无法找到正确的链接元素,因此进行DOM转换是不安全的.

链接后功能链接子元素后执行.在链接后功能中进行DOM转换是安全的.

此外,如果给定匿名函数,似乎默认键link将绑定到postLink.

我何时以及为什么要使用预链接功能?

angularjs

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

具有常量字符串和依赖类型的流类型

假设我有以下常量字符串:

export default const FOO = 'FOO'

假设我在流注释文件中导入它,如下所示:

import FOO from '../consts/Foo'

然后我有一个功能:

const example = (foo : string) : {| type: FOO, foo: string |} => {
  return {type: FOO, foo: foo}
}
Run Code Online (Sandbox Code Playgroud)

这不是类似于:

  6: const example = (foo : string) : {| type: FOO, foo: string |}=> {
                                                         ^^^^^^^^^^^^^^ string. Ineligible value used in/as type annotation (did you forget 'typeof'?)
  6: const example = (foo : string) : {| type: FOO, foo: string |}=> {
                                                         ^^^^^^^^^^^^^^ FOO
Run Code Online (Sandbox Code Playgroud)

所以我的问题是: …

javascript types dependent-type ecmascript-6 flowtype

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

Ruby有一个很好的openCL包装器吗?

我知道:

https://github.com/lsegal/barracuda

自01/11以来尚未更新

http://rubyforge.org/projects/ruby-opencl/

自03/10以来尚未更新.

这些项目已经死了吗?或者他们根本没有改变,因为他们的功能,OpenCL/Ruby从那时起没有改变.有人使用这些项目吗?运气好的话?

如果没有,你能为Ruby推荐另一个opencl gem吗?或者这种呼叫通常是如何完成的?只需从Ruby调用raw C?

ruby gpu opencl

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

为什么我不想在任何地方使用inverse_of?

如下所述:

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

inverse_of似乎告诉Rails缓存内存关联并最小化数据库查询.他们的例子是:

 class Dungeon < ActiveRecord::Base
   has_many :traps, :inverse_of => :dungeon
   has_one :evil_wizard, :inverse_of => :dungeon
 end

 class Trap < ActiveRecord::Base
   belongs_to :dungeon, :inverse_of => :traps
 end
Run Code Online (Sandbox Code Playgroud)

他们立即遵循:

 for `belongs_to` associations `has_many` inverse associations are ignored.
Run Code Online (Sandbox Code Playgroud)

所以我有几个问题.

  1. 是负相关忽视了has_many一个belongs_to?如果是这样,他们的榜样有意义吗?它不应该不做任何事情吗?
  2. 据我所知(假设它做了什么)所有这允许做的事情是这样的:

    dungeon.traps.first.dungeon
    
    Run Code Online (Sandbox Code Playgroud)

    最后调用.dungeonNOT生成一个完整的新查询,但只是达到内存关联.假设这是正确的,为什么我不想要这种行为?为什么我不坚持inverse_of:每个协会?

ruby ruby-on-rails associations rails-activerecord

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

在Javascript中更有效,删除元素或将其设置为未明确定义

假设我有一个关联数组Foo,键值和值xyz.

 console.log(Foo['bar']);

 >> xyz

 delete Foo['bar'];
 console.log Foo['bar'];

 >> undefined

 Foo['bar'] = 'xyz';
 console.log(Foo['bar']);

 >> xyz

 Foo['bar'] = undefined;
 console.log (Foo['bar']);

 >> undefined
Run Code Online (Sandbox Code Playgroud)

我的问题是,两者中哪一个更有效率,它们有何不同?有什么情况我应该使用一个而不是另一个?

谢谢!

结果:

感谢大家帮忙并向我展示jsperf.将其设置为undefined似乎(相对)明显快于删除,尽管下面指出的所有注意事项也非常有趣(事实上,我可能会使用删除很多,以避免将来的左边错误).

javascript

13
推荐指数
5
解决办法
4321
查看次数

Rails将父错误与子错误合并

我有以下两种(消毒/程式化)模型:

 class DrivingExam < ActiveRecord::Base
   belongs_to :dmv_rules
   has_many :invigilator_assignments, as: :assignable
   has_many :invigilator, through: :invigilator_assignments

   validate do |record|
     record.invigilator_assignments.each do |i|
       next if i.valid?
       i.errors.full_messages.each do |msg|
         errors.add_to_base(msg)
       end
     end
   end
 end



 class InvigilatorAssignment  < ActiveRecord::Base
   attr_accessible :invigilator_id

   belongs_to :assignable, polymorphic: true
   belongs_to :invigilator

   validates :invigilator_id, presence: true

   validates_each :invigilator do |record, attr, value|
     if record.assignable.is_a?(DrivingExam) && !value.no_scheduling_conflicts?
       record.errors.add attr, "This Invigilator has a scheduling conflict"
     end

   end
 end
Run Code Online (Sandbox Code Playgroud)

DrivingExamController通过以下方式调用这些:

 if @driving_exam.save
Run Code Online (Sandbox Code Playgroud)

预期的行为是模型应该在验证时返回false并将子消息加入父错误哈希并将其传递给控制器​​.

相反的是,页面无法使用422(这很奇怪)保存(这很好)并且不传递消息.

通过puts在上面的代码中添加语句,我已经确定:

1)if条件validates_each …

ruby validation associations ruby-on-rails-3 rails-activerecord

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