我真的对强类型编程语言(AKA类型安全执行)的概念感到困惑。基于维基百科来源的多个定义,我可以从我对它的理解中得出结论,类型安全实际上是关于语言本身预测的语言可以和不能做的事情(如果我错了,请纠正我)。
这让我想起了浏览一篇关于绑定的文章。这使我对静态/动态类型安全断言与字段的静态/动态绑定之间是否存在任何关系而感到困惑。
例如,一个整数变量int two = 1;被静态地绑定到它的值,试图将一个字符串值"1“赋值给整数变量会导致像int one ="1";这样的编译时错误。我认为这是一种由静态绑定实现的类型安全方法。我这样想错了吗?请启发我对这个概念的理解。
请解释一下Java中静态绑定和动态绑定的概念。
我所掌握的是Java中的静态绑定发生在编译时,而动态绑定发生在运行时,静态绑定使用类型(Java中的类)信息进行绑定,而动态绑定使用对象来解析绑定。
这是我理解的代码。
public class StaticBindingTest {
public static void main (String args[]) {
Collection c = new HashSet ();
StaticBindingTest et = new StaticBindingTest();
et.sor
我在大学里参加了一次面向反对的程序设计考试。其中一个问题是静态绑定和动态绑定。
问题如下:
Shape s; if(i==1) s = new Point(1,2); else s = new Rectange(10,20); //this is dynamic binding.
是/不是
这不是我的答案。
我的老师说答案是“不”,因为它是静态绑定。
正如我所知,静态绑定和动态绑定只有在调用方法时才会发生。我阅读了关于这个主题的所有StackOverflow问题和许多博客文章,唯一能给出的答案是动态绑定。
如有任何解释,将不胜感激。
引用了的话
动态绑定与动态链接正交.
我想知道如何理解正交的含义“?是不是因为
- compilation of source code into machine code is like going deep, and linkage of various machine codes is like going horizontal, and so they are orthogonal to each other,
- (static/dynamic) name binding is a concept in compilation
- static/dynamic linking
我正在尝试理解Javascript中绑定的概念。
你能解释一下Javascript中的词法绑定、动态绑定和其他绑定技术吗?
Javascript和Lisp有什么不同?我不知道Lisp,但我的搜索结果是这个链接。
非常感谢。
编辑1:为什么在不使用var that = this;的情况下可以工作?
function Person(name){
this.name = name;
setTimeout(() => {
console.log(this.name);
}, 100);
}
var me = new Person('Pristin
我希望在linux中分发QT应用程序,而不是源代码。
我希望我的应用程序在linux中工作,而不是安装QT。
我找到谷歌等等..。他们说
1. ldd ./application and check the .so file
2. copy .so file to another dir
3. move application file to same dir
4. then distribute(?)
我尝试过许多解决方案(静态编译、动态编译),但它不起作用……
我如何分发我的应用程序.?(我在Ubuntu14.04中使用)
我知道重载使用静态绑定,重写使用动态绑定。但如果它们是混合的呢?根据,为了解析方法调用,静态绑定使用类型信息,而动态绑定使用实际对象信息。
那么,在下面的示例中是否进行静态绑定来确定要调用哪个sort()方法?
public class TestStaticAndDynamicBinding {
@SuppressWarnings("rawtypes")
public static void main(String[] args) {
Parent p = new Child();
Collection c = new
这么多年之后,今天我决定回顾一些与数组相关的复杂语法,直到我意识到微软不再提及动态方面的,并且所有的例子都是静态之后,我才花了很多时间。我真的需要做一个快速的搜索,以发现他们把这个概念移到了一个新的词下作为或更通用的列表作为。
我只想澄清这一变化,以及这样一个事实:如果我需要使用新的命名来与我们的新程序员沟通,因为他们可能不会在大学或在线课程中接受旧的命名惯例。
MSDN参考
ArrayList类(.NET Framework4.5)
使用一个数组实现IList接口,该数组的大小根据需要动态增加。
// Creates and initializes a new ArrayList
我想相信,我理解静态/早期绑定与迟/动态绑定以及晚静态绑定的概念,但在阅读了有关它的几篇文章之后,我发现了一些相互矛盾的定义。
据我理解,以下几点:
<?php
class A {
protected $greeting = 'Hello from A';
public function hello() {
echo $this->greeting;
}
}
$obj = new A();
$obj->hello();
是一个静态或早期绑定的例子,它发生在编译时