Vue.js中方法和计算值之间的主要区别是什么?
它们看起来一样,可以互换.
是否可以声明一个允许可变数量参数的方法?
定义中使用的符号是什么,表明该方法应该允许可变数量的参数?
答案: varargs
在Python中,我试图在类中运行一个方法,我得到一个错误:
Traceback (most recent call last):
File "C:\Users\domenico\Desktop\py\main.py", line 8, in <module>
fibo.f()
TypeError: unbound method f() must be called with fibo instance
as first argument (got nothing instead)
Run Code Online (Sandbox Code Playgroud)
代码:(swineflu.py)
class fibo:
a=0
b=0
def f(self,a=0):
print fibo.b+a
b=a;
return self(a+1)
Run Code Online (Sandbox Code Playgroud)
脚本main.py
import swineflu
f = swineflu
fibo = f.fibo
fibo.f() #TypeError is thrown here
Run Code Online (Sandbox Code Playgroud)
这个错误是什么意思?导致此错误的原因是什么?
我正在为一门课程的一些代码写一个解释,并且不小心使用了这些单词method并且function可以互换.我决定回过头来修改措辞,但在我的理解中遇到了一个漏洞.
根据我的理解,子程序是一个function如果它不作用于一个类的实例(它的效果仅限于它的显式输入/输出),并且是一个method如果它在一个类的实例上运行(它可能携带)对实例造成不纯的副作用).
这里有关于这个主题的很好的讨论.请注意,根据接受的答案的定义,静态method实际上应该是一个函数,因为实例永远不会被隐式传递,并且它不能访问任何实例的成员.
虽然这是心灵,但是静态methods实际上不应该是函数吗?
根据他们的定义,他们不会对某一类的特定情况采取行动; 由于关系,他们只与班级"捆绑".我已经看到一些好看的网站将静态子程序称为"方法"(Oracle,Fredosaurus,ProgrammingSimplified),所以要么它们都忽略了术语,要么我错过了一些东西(我的猜测是后者) .
我想确保我使用正确的措辞.
任何人都能清楚这一点吗?
我花了最后几个小时试图找到问题的解决方案,但似乎没有希望.
基本上我需要知道如何从子类调用父方法.到目前为止,我尝试过的所有内容都会导致无法正常工作或覆盖父方法.
我使用以下代码在javascript中设置OOP:
// SET UP OOP
// surrogate constructor (empty function)
function surrogateCtor() {}
function extend(base, sub) {
// copy the prototype from the base to setup inheritance
surrogateCtor.prototype = base.prototype;
sub.prototype = new surrogateCtor();
sub.prototype.constructor = sub;
}
// parent class
function ParentObject(name) {
this.name = name;
}
// parent's methods
ParentObject.prototype = {
myMethod: function(arg) {
this.name = arg;
}
}
// child
function ChildObject(name) {
// call the parent's constructor
ParentObject.call(this, name);
this.myMethod = function(arg) { …Run Code Online (Sandbox Code Playgroud) 虽然可能存在这样的方法过载可能变得模糊的有效情况,但为什么编译器不允许在编译时和运行时都不模糊的代码?
例:
// This fails:
def foo(a: String)(b: Int = 42) = a + b
def foo(a: Int) (b: Int = 42) = a + b
// This fails, too. Even if there is no position in the argument list,
// where the types are the same.
def foo(a: Int) (b: Int = 42) = a + b
def foo(a: String)(b: String = "Foo") = a + b
// This is OK:
def foo(a: String)(b: Int) = a + b …Run Code Online (Sandbox Code Playgroud) 我有两个Java类:B,它扩展了另一个类A,如下所示:
class A {
public void myMethod() { /* ... */ }
}
class B extends A {
public void myMethod() { /* Another code */ }
}
Run Code Online (Sandbox Code Playgroud)
我想打电话A.myMethod()给B.myMethod().我来自C++世界,我不知道如何在Java中做这个基本的事情.
今天早上我在我的一个图书馆找到了这个:
static tvec4 Min(const tvec4& a, const tvec4& b, tvec4& out)
{
tvec3::Min(a,b,out);
out.w = min(a.w,b.w);
}
Run Code Online (Sandbox Code Playgroud)
我期望编译器错误,因为此方法不返回任何内容,并且返回类型不返回void.
想到的唯一两件事是
在调用此方法的唯一位置,不使用或存储返回值.(此方法应该是void- tvec4返回类型是复制和粘贴错误)
tvec4正在创建一个默认构造,这看起来有点不同,哦,C++中的其他所有东西.
我还没有找到解决这个问题的C++规范部分.参考文献(ha)表示赞赏.
更新
在某些情况下,这会在VS2012中生成错误.我没有缩小具体细节,但它仍然很有趣.
methods ×10
java ×4
javascript ×2
arguments ×1
c++ ×1
c++11 ×1
coding-style ×1
default ×1
factory ×1
inheritance ×1
oop ×1
overloading ×1
overriding ×1
parent ×1
polymorphism ×1
python ×1
scala ×1
static ×1
terminology ×1
vue.js ×1
vuejs2 ×1