两者有什么区别?
所以我知道这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) 据我所知,有三种方法可以在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不是.
所以我的问题是:有没有理由使用.send或eval?为什么你不总是只使用最快的方法?这些调用动态方法的方法有什么其他区别?
是否可以使用Haskell堆栈从github安装包的版本?
例如,在一个.cabal或一个stack.yaml文件中,如何在git repo/branch/revision中指向依赖?
如下所述:
http://docs.angularjs.org/guide/directive
Angular js指令采用两种不同类型的链接函数:
预链接功能在链接子元素之前执行.由于编译器链接功能无法找到正确的链接元素,因此进行DOM转换是不安全的.
链接后功能链接子元素后执行.在链接后功能中进行DOM转换是安全的.
此外,如果给定匿名函数,似乎默认键link将绑定到postLink.
我何时以及为什么要使用预链接功能?
假设我有以下常量字符串:
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)
所以我的问题是: …
我知道:
https://github.com/lsegal/barracuda
自01/11以来尚未更新
和
http://rubyforge.org/projects/ruby-opencl/
自03/10以来尚未更新.
这些项目已经死了吗?或者他们根本没有改变,因为他们的功能,OpenCL/Ruby从那时起没有改变.有人使用这些项目吗?运气好的话?
如果没有,你能为Ruby推荐另一个opencl gem吗?或者这种呼叫通常是如何完成的?只需从Ruby调用raw C?
如下所述:
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)
所以我有几个问题.
has_many一个belongs_to?如果是这样,他们的榜样有意义吗?它不应该不做任何事情吗?据我所知(假设它做了什么)所有这允许做的事情是这样的:
dungeon.traps.first.dungeon
Run Code Online (Sandbox Code Playgroud)
最后调用.dungeonNOT生成一个完整的新查询,但只是达到内存关联.假设这是正确的,为什么我不想要这种行为?为什么我不坚持inverse_of:每个协会?
假设我有一个关联数组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似乎(相对)明显快于删除,尽管下面指出的所有注意事项也非常有趣(事实上,我可能会使用删除很多,以避免将来的左边错误).
我有以下两种(消毒/程式化)模型:
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
ruby ×4
javascript ×3
associations ×2
haskell ×2
angularjs ×1
arrays ×1
cabal ×1
ecmascript-6 ×1
flowtype ×1
ghc ×1
github ×1
gpu ×1
opencl ×1
optimization ×1
types ×1
validation ×1