dynamic-typing相关内容

了解 PHP 类型强制

我看到了这么一小段代码,让我无法理解: 将输出: bool(true) 我了解当使用 == 时,PHP 会尝试模糊比较,在类型之间静默转换以执行比较.我不理解的是为什么 PHP 似乎认为这两个字符串是相同的.我会认为由于 $a 和 $b 是字符串,因此不需要进行类型转换. 我不明白什么? 解决方案 我觉得这篇文章解释的很好: 类型强制比较运算符会将数字字符串转换为数字 ..
发布时间:2022-01-12 23:52:57 PHP

如何在动态类型语言中描述函数参数?

我的问题更倾向于 Python,但也可能与 JavaScript 或其他脚本语言有关. 我通常使用静态类型语言(Java、C++、ActionScript 等)进行开发. 我喜欢时不时使用Python,有时也需要使用JavaScript.这些是动态类型语言.这没什么不对,但我通常很难理解函数或方法中需要哪些参数.即使它是我自己的带有一些文档字符串的代码,它也会发生!也许是因为眼睛必须看 ..

推断类型和动态类型

在编程语言中,推断类型和动态类型有什么区别?我知道动态类型,但不知道动态类型与推断类型有何不同?有人可以提供一些例子的解释吗? 解决方案 推断类型 = 在编译时设置一次.实际上,推断部分只是为了节省时间,因为如果编译器可以计算出来,您就不必键入 Typename. 类型推断通常与静态类型结合使用(就像 swift 的情况一样)(http://en.wikipedia.org/wi ..
发布时间:2021-09-11 19:56:45 其他开发

在Python中强制/转换为正确类型的最佳位置

我对Python还是很陌生,我正在尝试适应它的动态类型.有时候,我有一个函数或一个类,它期望某种类型的参数,但是可以得到另一种可以强制执行的类型的值.例如,它可能期望为float,但接收的是int或小数.或者它可能需要一个字符串,但是会收到一个定义__str__特殊方法的对象. 将参数强制为正确类型(及其原因)的最佳实践是什么?我是在函数/类中还是在调用方中进行的?如果在调用方中,是否还要在 ..
发布时间:2020-06-13 18:48:06 Python

什么时候应该在Python中使用类型检查?

我开始学习Python,作为一名主要的Java开发人员,我最大的问题是了解何时以及何时不使用类型检查.大多数人似乎在说Python代码不需要进行类型检查,但是在很多情况下,我认为这是必要的.例如,假设我需要使用一个方法参数来执行算术运算,为什么我不应该确保该参数是数字数据类型呢? 此问题不仅限于功能.对于类变量,我也经历了同样的思考过程.为什么以及何时不应该使用属性(使用@property) ..
发布时间:2020-06-13 18:47:56 Python

从Haxe中的字符串名称创建类的实例

比方说,我获得了我作为String做的一类的名称.如何使用该字符串中包含的名称实例化该类?我知道它将从某个父类派生,但实际的类会有所不同. 解决方案 var instance : MyClass = Type.createInstance(Type.resolveClass("path.to.MyClass"), []); 一些注意事项: resolveClass()包含所需类的 ..
发布时间:2020-06-13 18:47:49 其他开发

sqlite的清单输入什么时候有用?

sqlite使用的东西被作者称为"清单输入",这基本上意味着sqlite是动态类型的:如果需要,可以将varchar值存储在"int"列中. 这是一个有趣的设计决定,但是每当我使用sqlite时,我就将其像标准RDMS一样使用,并将类型视为静态.确实,在其他系统中设计数据库时,我什至都不希望使用动态类型的列. 那么,此功能何时有用?有人在实践中找到了很好的用处,而用静态类型的列却做不到 ..
发布时间:2020-06-13 18:47:47 数据库

是否存在具有动态甚至弱类型输入的已编译*编程语言?

我想知道是否有一种编程语言可以编译为具有动态类型和/或弱类型的机器代码/二进制(不是字节码,然后由VM执行,这在考虑键入时是完全不同的),例如: 想想一种编译语言,其中: 不需要声明变量 可以在运行时创建变量 函数可以返回不同类型的值 问题: 有这样的编程语言吗? (为什么)不? 我认为动态而强大的类型化编译语言确实可以理解,但是有可能吗? 解决方案 我 ..

在Python中使用变量作为类名?

我想知道如何在Python中将变量用于对象和函数名称.在PHP中,您可以执行以下操作: $className = "MyClass"; $newObject = new $className(); 您如何在Python中执行此类操作?还是我完全不了解Python的一些根本区别,如果是,那是什么? 解决方案 在Python中, className = MyClass new ..
发布时间:2020-06-13 18:47:38 Python

Objective-C中的动态类型和返回值

我遇到了一种非常奇怪的行为,我无法理解.我有一个Texture类,其contentWidth属性的类型为int.此类包装在Image类中,该类具有类型为int的width属性. Image的width可以简单地计算为基础纹理的contentWidth: - (int) width { return texture.contentWidth; } 现在Image由要读取图像大小的B ..
发布时间:2020-06-13 18:47:35 移动开发

如何在Python中对变量进行类型检查?

我有一个Python函数,该函数带有一个数字参数,必须是整数,以便其正确运行.在Python中进行验证的首选方式是什么? 我的第一反应是做这样的事情: def isInteger(n): return int(n) == n 但是我不禁会认为这是1)昂贵的2)丑陋的和3)受到机器epsilon的怜悯之情的. Python是否提供任何本机的类型检查变量方法?还是认为这违 ..
发布时间:2020-06-13 18:47:32 Python

哪些语言是动态类型化和编译的(哪些是静态类型化和解释的)?

在阅读有关动态和静态类型的文章时,我一直提出以下假设:编译静态类型的语言,而解释动态类型的语言.我知道总的来说这是对的,但是我对异常很感兴趣. 我真的希望有人不仅给出这些例外的一些例子,还要尝试解释为什么决定这些语言应该以这种方式工作. 解决方案 以下是一些有趣的系统的列表. 不是详尽无遗! 动态键入和编译 The Gambit Scheme编译器, Chez Schem ..

有人可以告诉我强打字和弱打字是什么意思,哪个更好?

有人可以告诉我强打字和弱打字是什么意思,哪个更好? 解决方案 这将是理论上需要注意的答案,但实践方面似乎已经被忽略了…… 强类型化意味着您不能在期望使用另一种类型的变量中使用它(或者这样做会受到限制).弱类型意味着您可以混合使用不同的类型.例如,在PHP中,您可以混合数字和字符串,而PHP不会抱怨,因为它是一种弱类型的语言. $message = "You are visito ..

联合类型实际上存在于python中吗?

由于python是动态类型的,因此我们当然可以执行以下操作: def f(x): return 2 if x else "s" 但这是python实际使用的方式吗?换而言之,例如,联合类型是否在Racket中的意义上存在?还是只像这样使用它们: def f(x): if x: return "s" 我们唯一需要的“联盟"是“无"? 解决方案 ..
发布时间:2020-06-13 18:47:22 Python

静态/动态与强/弱

我看到这些术语在编程中无处不在,并且我对它们的含义有一个模糊的概念.搜索显示我实际上已经在整个堆栈溢出中询问了此类问题.据我所知,语言中的静态/动态键入与强/弱键入有细微的区别,但是这种差异是我难以理解的.不同的来源似乎使用不同的含义,甚至可以互换使用这些术语.我找不到某个地方可以同时讨论这两者,并能真正说明两者之间的区别.最好的是,如果有人可以在这里为我和世界其他地方清楚地说明这一点. 解 ..