static-typing相关内容
问题:如果不使用any,我的onMouseMove函数的正确类型是什么? export class Main { private dTimer: number; constructor() { this.init(); } private init() { this.mouseHandlers(); } private mouseHandlers
..
我尝试询问的示例代码如下。 Internet上的任何示例都不会尝试这样重载参数值。 其中一个参数是布尔值,我希望重载基于布尔值而不是通常的参数类型的方法。 from typing import overload, Union @overload def myfunc(arg:bool=True)-> str: ... @overload def myfunc(arg:bool=Fal
..
我可以在声明成员时指定接口吗? 在思考这个问题一段时间后,我突然想到静态鸭子类型的语言可能真的有效.为什么不能在编译时将预定义的类绑定到接口?示例: 公共接口 IMyInterface{public void MyMethod();}public class MyClass//没有显式实现IMyInterface{public void MyMethod()//但包含一个兼容的方法定义{C
..
我正在寻找一个 Lua 前端编译器,它在编译时进行类型检查,但输出标准的 Lua 5.1 字节码(只有运行时类型).我想要的是相当数量的静态、编译时句法分析和可选类型,以便比运行时更早地检测到微不足道的错误.生成的字节码必须能够与使用标准 LoadString() 编译的现有 Lua 字节码完美配合. 要清楚——任何差异只会发生在字节编译时.在运行时,字节码不知道在编译阶段发生了任何不同/不
..
我只是在 VisualStudio 2012 中测试打字稿,但它的类型系统有问题.我的 html 站点有一个带有 ID“mycanvas"的画布标签.我试图在这个画布上绘制一个矩形.这是代码 var canvas = document.getElementById("mycanvas");var ctx: CanvasRenderingContext2D = canvas.getContext(
..
假设我有以下数据模型,用于跟踪棒球运动员、球队和教练的统计数据: data BBTeam = BBTeam { teamname::String,经理::教练,球员 :: [BBPlayer] }推导(显示)数据教练=教练{教练名::字符串,favcussword :: 字符串,饮食 :: 饮食 }推导(显示)数据饮食 = 饮食 { 饮食名称 :: 字符串,牛排::整数,鸡蛋 :: 整数 }推导
..
规范中没有太多关于归属地类型的信息,当然也没有任何关于其目的的信息.除了“使传递可变参数工作"之外,我还会使用类型归属地做什么?下面是一些 scala REPL 的语法和使用效果. scala>val s = "戴夫"s: java.lang.String = 戴夫标度>val p = s:对象p: java.lang.Object = 戴夫标度>长度:7: 错误:值长度不是
..
当我们将一种类型的对象转换为另一种类型时是否有任何开销?还是编译器只是解决了所有问题而没有运行时的成本? 这是一般的事情,还是有不同的情况? 例如,假设我们有一个 Object[] 数组,其中每个元素可能有不同的类型.但是我们总是可以肯定地知道,比如说,元素 0 是一个 Double,元素 1 是一个字符串.(我知道这是一个错误的设计,但让我们假设我必须这样做.) Java 的类
..
我知道你可以创建一个匿名函数,并让编译器推断它的返回类型: val x = () =>{ System.currentTimeMillis } 就静态类型而言,是否也可以指定其返回类型?我认为这会让事情变得更加清晰. 解决方案 在我看来,如果你想让事情更清楚,最好通过在标识符 x 上添加类型注释而不是函数的结果. val x: () => Long = () => System.cu
..
我有一个文件 t.py,它有一个类 Animal 和一个子类 Cat.两者都有方法 foo,它根据布尔值 inplace 的值具有不同的返回类型. 这是文件的完整代码: # t.py从 __future__ 导入注释从输入导入 TypeVar,可选,重载,文字CatOrDog = TypeVar(“CatOrDog", bound=“Animal")动物类:@超载def foo(self:
..
我有一个类 Animal 和一个方法 foo 根据一个布尔参数 inplace 有不同的返回类型,它跟在一个可选参数 条形.我想重载该函数,以便在 inplace 的值已知时返回类型是已知的 这是我的代码: # main.py从 __future__ 导入注释从输入导入可选,重载,文字动物类:@超载def foo(self, bar=..., inplace: Literal[False]
..
使用 python 3.5.1.以及当前使用 git 安装的 mypy,mypy 标记错误 1 &2,但它不报告 3 我做错了什么,或者这是一个错误,还是一个已知问题? 导入输入def test_ordered_dict(od: typing.Dict[str,int]) ->打字.Dict[str,int]:返回 1 #type 错误 1a = test_ordered_dict(1
..
问题:如果不使用 any,我的 onMouseMove 函数的正确类型是什么? 导出类 Main {私人 dTimer:数字;构造函数(){this.init();}私人初始化(){this.mouseHandlers();}私人鼠标处理程序(){document.addEventListener('mousemove', this.onMouseMove)}private onMouseMov
..
我有一个继承自 typing.Generic 的类,并传入一个 TypeVar 作为参数. 稍后在代码中,我想: 通常(不在运行时)从类中获取 TypeVar 参数 将其别名为另一个类型变量 使用该别名键入提示功能的 return Python中是否有某种方法可以实现这一目标? 我唯一缺少的是步骤1,如何从类型变量中获取类型参数 我的用例 来自abc导入ABC的
..
我来自打字稿背景.我正在将静态类型检查引入到我正在研究的python项目中(使用mypy). 在Typescript中,从带有注释以返回其他内容(即字符串)的函数中返回null是有效的: 功能测试(标志:布尔值):字符串{if(flag){返回“成功";} 别的 {返回null;}} 注释函数具有多种可能的返回类型(即字符串或布尔值)也是有效的: 功能测试(标志:布尔值):字符串|布
..
我来自静态类型的背景并正在研究函数式编程,但是我对动态类型并不完全满意.我很好奇那里有什么样的选择. 一个开始的答案:ActionScript 3是静态类型的,并且提供了一些功能范例,尽管AS3程序并不经常使用它们. 解决方案 有很多.想起了Haskell,OCaml和F#.如果您是Windows开发人员,则F#非常好,并且受到Microsoft(非常强大的StackOverflow
..
mypy --strict忠实地抱怨以下代码: from typing import Any, Dict def main() -> None: my_str: str = 'hello' my_int: int = my_str if __name__ == "__main__": main() 通过输出: error: Incompatible ty
..
(这是我的代码库是完全静态类型的(注释),但是在某些时候存在Any类型,例如,因为从JSON字符串中解析了一个值.这是我的最小示例: import json from typing import Any, Dict, Union def main() -> None: data = json.loads('{"value" = "three"}') my_int: int
..
尝试在Python代码中使用静态类型,因此mypy可以帮助我解决一些隐藏的错误.使用单个变量非常简单 real_hour: int = lower_hour + hour_iterator 更难将其与列表和字典一起使用,需要导入其他typing库: from typing import Dict, List hour_dict: Dict[str, str] = {"test_ke
..
当我在Common Lisp中定义这样的函数时: (defun foo (n) (declare (type fixnum n)) (+ n 42)) 我希望像(foo "a")这样的呼叫会立即失败,但是在呼叫+时会失败. declare形式不能保证静态类型检查吗? 解决方案 传统上,类型声明是为了保证编译器的优化目的而使用的.对于类型检查,请使用check-type(但
..