如果我说x.hello()在Java中,对象x正在“调用”它包含的方法。在Ruby中,对象x正在“接收”它包含的方法。这只是表达相同想法的不同术语,还是意识形态上的根本差异?来自Java,我发现Ruby的“接收器”想法非常令人困惑。也许有人可以解释这与Java的关系? 最佳答案 在您的示例中,x不调用hello()。包含该片段的任何对象都是“调用”(即,它是“调用者”)。在Java中,x可以称为接收者;它正在接收对hello()方法的调用。 关于java-Java中的"caller"和R
在下面的例子中,为什么我们说“k.send:hello”而不是“k.receive:hello”if,asstatedelsewhere,k实际上是接收者?听起来k是发送者而不是接收者。当我们说“k.send:hello”时,谁在发送,如果不是k?(你是不是和我一样一头雾水?)classKlassdefhello"Hello!"endendk=Klass.newk.send:hello#=>"Hello"k.hello#=>"Hello" 最佳答案 在Smalltalk中,一切都是对象。“发送者”是消息来源范围的所有者对象(即“th
我正在阅读一份文档,该文档讨论了一种具有接收器的方法。什么是接收器? 最佳答案 在Ruby(以及其他受SmallTalk启发的语言)中,对象被认为是发送和接收“消息”。在Ruby中,Object是一切的基类,它有一个send方法:Object.send例如:classKlassdefhello"Hello!"endendk=Klass.newk.send:hello#=>"Hello!"k.hello#=>"Hello!"在这两种情况下,k都是“你好”消息的接收者。 关于ruby-在Ru
我目前正在使用Groovy和Grails。虽然Groovy非常简单,因为它基本上是Java,但我不能说我理解Grails。我读到Groovy之于Grails就像Ruby之于RubyonRails,但这意味着什么? 最佳答案 为了解决您对隐喻的困惑(尽管已在您的问题下以其他方式回答):GroovyistoGrailsasRubyistoRubyonRails,butwhatdoesthatmean?Grails是一个基于/使用Groovy编程语言构建的Web框架,可以为Groovy做与Rails(Ruby的Web框架)为Ruby做的相
根据维基百科,一个monkeypatch是:awaytoextendormodifytheruntimecodeofdynamiclanguages[...]withoutalteringtheoriginalsourcecode.来自同一条目的以下陈述让我感到困惑:InRuby,thetermmonkeypatchwasmisunderstoodtomeananydynamicmodificationtoaclassandisoftenusedasasynonymfordynamicallymodifyinganyclassatruntime.我想知道Ruby中猴子修补的确切含义。它
请原谅我,我会尽力描述我正在寻找的东西。我没有它的名字,所以它变得更加困难。查看库,例如Folktale和monet.js,我喜欢能够使用map链接操作而无需空检查或if语句,例如使用也许,要么,任务。我想知道是否存在类似的构造来解决以下问题:我有初步意见。我想构建一个对输入进行操作的函数链。每个函数可能返回也可能不返回结果。如果函数没有返回结果,则调用链中的下一个函数。一旦函数返回结果,就忽略链中的其余函数(类似于map在Maybe.Nothing上ping一个函数)返回结果。换句话说,我正在寻找类似于Maybe的东西,它包含一个值并将函数映射到Just但忽略映射到Nothing的函
(相关但不完全相同:JSPromises:FulfillvsResolve)我一直在努力思考Javascriptpromises,我正在努力解决resolve和resolved与fulfill的基本概念和完成。看了几个介绍,比如JakeArchibald's,以及浏览somerelevantspecs.在StatesandFates(不完全是官方规范,但被引用为规范作者之一撰写的权威文档),fulfilled是一种状态,而resolved是一种“命运”(无论是——但它们明显不同):Promiseshavethreepossiblemutuallyexclusivestates:fulf
我有一个这样的对象:functionPerson(){}除了对象,你会怎么调用它?明明不是类,那又是什么?我正在寻找一个不是对象的术语,因为我想特别强调您可以创建它的新实例这一事实。 最佳答案 “functionPerson(){}”是类型的构造函数。newPerson()的值将是类型Person的实例(或对象)。 关于javascript-除了对象之外,在JavaScript中调用的可实例化"class"是什么?,我们在StackOverflow上找到一个类似的问题:
JavaScript中似乎有几个不同的“组”类似函数的东西。以下是我为他们编造的名字:“常规函数”:可以使用括号和new调用。.大多数功能都属于这一类。“仅构造函数”:可以使用new调用只要。例如,Image,DOMParser等“非构造函数”:可以使用括号调用,但不能使用new.例如,Math.round,Function.prototype.“不可调用函数”:这些函数根本不可调用。例如,window.constructor,Document,NodeList等这些不同功能组的专有名称是什么?我还试图弄清楚是否可以根据它的[[Prototype]]来确定一个函数在哪个“组”中。(__
在Javascript中,命名空间和闭包有什么区别?他们看起来和我很相似。编辑具体来说,thisarticle讨论命名空间和闭包,并有像这样的句子Now,we’restillgoingtohavesituationswherewe’llwanttodeclarevariablesthatdon’tnaturallyfitintoanamespacedobjectstructure.Butwedon’twantthosevariablestohaveaglobalscope.Thisiswhereself-invokingfunctionscomein.它继续提供看起来很像闭包的东西,作