首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏初代庄主

    Python 静态类型检查入门

    有了解决方案,问题就解决了一半,剩下的就是要落实;就其它静态类型的语言来说这个比较好办,只需要把数据类型声明为 int / long int 类型就行,编译时就能检查出问题。 对于 Python 的话我们要加一些类型提示(注解),然后再用专门的静态分析工具去检查,我们的使用方式与类型提示是否一致。那下面就来实操下。 + my_sum(j, k) print("total = {}".format(total)) if __name__ == "__main__": main() 对代码进行静态类型检查 ,可以看到类型检查也过去了。 静态类型检查就能比较好地解决掉这些问题。 事实上我们在真正的开发上并不会,每次都会去运行程序做检查的,vscode 上有方便的插件可以用;不过这是后话了下次再说吧,这篇文章已经有点长了。

    44710编辑于 2024-04-22
  • 来自专栏前端下午茶

    JS 静态类型检查工具 Flow

    本文主要介绍了解决JS作为弱类型语言没有类型检查痛点的静态类型检查工具 Flow ,并且介绍了在WebStorm中使用Flow的方法,最后介绍了一些常用的Flow语法。 1. Flow是一个由Facebook出品的JavaScript静态类型检查工具,它与Typescript不同的是,它可以部分引入,不需要完全重构整个项目,所以对于一个已有一定规模的项目来说,迁移成本更小,也更加可行 除此之外,Flow可以提供实时增量的反馈,通过运行Flow server不需要在每次更改项目的时候完全从头运行类型检查,提高运行效率。 } else { return ""; } } stringify("foo"); 任意类型 any 如果你想要一种方法来选择不使用类型检查器,any 是做到这一点的方法。 提升前端开发的体验 Flow静态类型检查及在Vue项目中的使用 如何在项目中使用 flow js

    3.8K50发布于 2018-10-22
  • 来自专栏程序员

    python静态类型检查工具mypy

    mypy介绍 mypy 是 Python 的一个可选静态类型检查器,旨在结合动态(或“鸭子”)类型静态类型的优点。 pip3 install mypy 接下来就可以直接在使用mypy了,例如: mypy type_annotations.py 就可以实现对代码进行静态类型检查,但是前提是你的代码使用了类型注解,否则mypy 例如下面的代码: def add(a:int, b:int) -> int: "整数相加" return a + b add(1, 2) # 静态类型检查通过 add ("123", "qwe") # 静态类型检查失败 使用mypy进行静态类型检查,结果如下所示: test.py:17: error: Argument 1 to "add" has incompatible 如果我们想要上面的代码通过静态类型检查,可以有两种方式。

    1.4K10编辑于 2022-05-05
  • 来自专栏Web前端开发

    认识 JS 静态类型检查工具 Flow

    一、什么是 Flow Flow 是 facebook 出品的 JavaScript 静态类型检查工具 Vue.js 的源码利用了 Flow 做了静态类型检查,所以了解 Flow 有助于我们阅读源码 二 类型检查是当前动态类型语言的发展趋势,所谓类型检查,就是在编译期尽早发现(由类型错误引起的)bug,又不影响代码运行(不需要运行时动态检查类型),使编写 JavaScript 具有和编写 Java 等强类型语言相近的体验 项目越复杂就越需要通过工具的手段来保证项目的维护性和增强代码的可读性,Vue.js 在做 2.0 重构时,在 ES6 的基础上,除了 ESLint 保证代码风格之外,也引入了 Flow 做静态类型检查 之所以选择 Flow,主要是因为 Babel 和 ESLint 都有对应的 Flow 插件以支持语法,可以完全沿用现有的构建配置,非常小成本的改动就可以拥有静态类型检查的能力 三、Flow 与 TypeScript ,在阅读源码的时候,如果遇到某个类型并想了解它完整的数据结构的时候,可以回来翻阅这些数据结构的定义 六、总结 通过对 Flow 的认识,有助于我们阅读 Vue 的源码,并且这种静态类型检查的方式非常有利于大型项目源码的开发和维护

    2.8K10发布于 2020-10-09
  • 来自专栏一路向前端

    Flow 静态类型检查开发环境搭建

    Flow 是 Facebook 出品的,针对 JavaScript 的静态类型检查工具。 同时,Flow 为 JavaScript 添加了静态类型的语法标识,这样开发者便可以明确代码中的类型,让其自动地被 Flow 所维护。 extends": "eslint:recommended", "parserOptions": { "env": { "es6": true } } } 配置 Flow 静态类型检查 babel-plugin-transform-class-properties eslint-plugin-flowtype-errors 依赖解释: flow-bin:Flow 的二进制包装器—— JavaScript 的静态类型检查器 在 src 目录下新建一个 index.js 文件,编写带有 Flow 静态类型检查代码: /* @flow */ const x: number = 10 function square (x: number

    1.5K20发布于 2020-04-21
  • 来自专栏向治洪

    ESLint静态代码检查

    如果每次在代码提交之前都进行一次eslint代码检查,就不会因为某个字段未定义为undefined或null这样的错误而导致服务崩溃,可以有效的控制项目代码的质量。 eslint-disable */,具体可以参考Command line Interface eslint-loader 有时候,我们希望在项目开发的过程当中,每次修改代码都能够自动进行ESLint的检查 因为在我们改代码的过程中去做一次检查,如果有错误,我们就能够很快地去定位到问题并解决问题。这时候我们可以借助eslint-loader插件。

    2.8K20编辑于 2022-11-30
  • 来自专栏AI派

    资源 | Github项目推荐 | 微软开源Python静态类型检查器Pyright

    微软最新开源Python静态类型检查器Pyright,比mypy快5倍 Python语言的静态类型检查器 创建Pyright是为了填补像 mypy 这样的现有Python类型检查器的漏洞。 Github项目地址:(点击链接可直接打开) https://github.com/Microsoft/pyright 速度 Pyright通常比mypy和其他用Python编写的类型检查器快5倍或更多 类型检查功能 Pyright 支持: PEP 484 类型提示,包括泛型 变量注释的 PEP 526 语法 PEP 544 结构子类型 函数返回值、实例变量、类变量和全局变量的类型推断 理解条件代码流构造的智能类型约束 它支持各种功能,包括调试、linter插件、类型检查插件等等。 Pyright完全专注于类型检查。 这是一个没有专门团队的次要项目。 它还提供类型检查功能。 Pyright提供了与之重复的功能,但包括了一些独特的功能,如可配置性更高、命令行执行和更好的性能。

    1.2K20发布于 2019-05-05
  • 来自专栏AI科技评论

    资源 | Github项目推荐 | 微软开源Python静态类型检查器Pyright

    微软最新开源Python静态类型检查器Pyright,比mypy快5倍 Python语言的静态类型检查器 创建Pyright是为了填补像 mypy 这样的现有Python类型检查器的漏洞。 Github项目地址:(点击链接可直接打开) https://github.com/Microsoft/pyright 速度 Pyright通常比mypy和其他用Python编写的类型检查器快5倍或更多 类型检查功能 Pyright 支持: PEP 484 类型提示,包括泛型 变量注释的 PEP 526 语法 PEP 544 结构子类型 函数返回值、实例变量、类变量和全局变量的类型推断 理解条件代码流构造的智能类型约束 它支持各种功能,包括调试、linter插件、类型检查插件等等。 Pyright完全专注于类型检查。 这是一个没有专门团队的次要项目。 它还提供类型检查功能。 Pyright提供了与之重复的功能,但包括了一些独特的功能,如可配置性更高、命令行执行和更好的性能。

    1.2K20发布于 2019-10-31
  • 来自专栏DevOps持续交付

    DevOps中的静态检查

    提前发现和预防错误:静态检查可以在代码编写过程中提前发现潜在的问题,避免在后期测试和部署时才发现问题,从而减少修复成本。 2. 提高代码质量:通过静态检查可以发现代码中的不良实践和不符合规范的写法,有助于提高代码质量,增强软件的可维护性和可读性。 3. 增强安全性:一些静态检查工具能够发现代码中的安全漏洞和潜在的恶意代码,提高软件的安全性。 Python语言体系 Pylint:Pylint是一个用于检查Python代码的静态分析工具。它可以检查代码中的错误、查找不符合规范的代码风格,并提供了强大的自定义配置功能。 PyChecker:PyChecker是一个相对较旧的Python静态分析工具,但仍然具有一定的实用价值。它可以检测Python代码中的各种错误和问题,如类型错误、逻辑错误等。

    1.9K10编辑于 2024-01-21
  • 来自专栏freesan44

    OCLint静态代码检查脚本

    前言 OCLint是静态代码检查工具,用于检查代码质量 环境部署 网上太多类似教程,可参考 OCLint在Xcode中的使用 OCLint 实现 Code Review - 给你的代码提提质量 脚本 myworkspace=OCLintProject.xcworkspace #填写workspace myscheme=OCLintProject #填写Target reportType=html #输出类型 默认是oclint提供的都支持,可以组合-disable-rule来过滤掉一些规则 规则列表 -disable-rule 需要忽略的规则,根据项目需求设置 -report-type 分析的报告的类型 ,支持[text、html、xml、json、pmd],差异可见对应Sample; 一般会选择可读性好的html或者pmd;这里我们选取pmd类型,用于结合PMD analysis生成PMD warnings

    1.9K10发布于 2021-01-20
  • 来自专栏技术墨客

    React Flow代码静态检查

    Flow Flow是Facebook开源的静态代码检查工具,他的作用是在运行代码之前对React组件以及Jsx语法进行静态代码的检查以发现一些可能存在的问题。 React组件参数检查 React组件参数检查介绍了React通过PropType机制限定使用者使用组件传递的参数类型以及范围,但是PropType是一种运行检测机制,在程序跑起来之后获取到具体数据才会执行检查 而Flow是静态检查,是在代码编译运行之前进行一次检查,两者相辅相成互不干扰。 本文就不一一介绍了,有需要的码友可以按照下面的资源清单去了解相关的内容: React事件 Refs引入对象 子组件列表 高阶组件参数 Redux整合 类型检查扩展 Flow会检查所有的JavaScript 除了前面的例子中给出的各种类型参数,Flow还有更丰富的检查功能,查看 这里 以了解更多内容。

    1.1K40发布于 2018-08-03
  • 来自专栏AI研习社

    Github项目推荐 | 微软最新开源Python静态类型检查器Pyright

    微软最新开源Python静态类型检查器Pyright,比mypy快5倍 Python语言的静态类型检查器 创建Pyright是为了填补像 mypy 这样的现有Python类型检查器的漏洞。 Github项目地址:(点击链接可直接打开) https://github.com/Microsoft/pyright 速度 Pyright通常比mypy和其他用Python编写的类型检查器快5倍或更多 类型检查功能 Pyright 支持: PEP 484 类型提示,包括泛型 变量注释的 PEP 526 语法 PEP 544 结构子类型 函数返回值、实例变量、类变量和全局变量的类型推断 理解条件代码流构造的智能类型约束 它支持各种功能,包括调试、linter插件、类型检查插件等等。 Pyright完全专注于类型检查。 这是一个没有专门团队的次要项目。 它还提供类型检查功能。 Pyright提供了与之重复的功能,但包括了一些独特的功能,如可配置性更高、命令行执行和更好的性能。

    1.4K20发布于 2019-05-08
  • 来自专栏技术墨客

    React——Flow代码静态检查

    Flow Flow是Facebook开源的静态代码检查工具,他的作用是在运行代码之前对React组件以及Jsx语法进行静态代码的检查以发现一些可能存在的问题。 在需要检查的地方增加了Flow相关的类型注解。(类似与Java的Annotation机制) 接下来我们来一一说明以上三点的具体内容。码友们边阅读边操作即可。 而Flow是静态检查,是在代码编译运行之前进行一次检查,两者相辅相成互不干扰。 本文就不一一介绍了,有需要的码友可以按照下面的资源清单去了解相关的内容: React事件 Refs引入对象 子组件列表 高阶组件参数 Redux整合 类型检查扩展 Flow会检查所有的JavaScript 除了前面的例子中给出的各种类型参数,Flow还有更丰富的检查功能,查看 这里 以了解更多内容。

    1.4K10发布于 2018-08-15
  • 来自专栏zinyan

    Groovy 类型检查扩展,最终篇 高级类型检查扩展

    让我们解释第一点,也就是说即使使用扩展,编译器也不知道如何静态编译我们的代码:从技术上讲,即使我们告诉类型检查器动态变量的类型是什么,例如,它也不知道如何编译它。 即使使用类型检查扩展,也绝对没有直接的方法告诉静态编译器如何编译这样的代码(同样,这只会给出关于类型的提示)。 对于这个特殊示例,一个可能的解决方案是指示编译器使用混合模式编译。 想象一个能够对SQL查询进行类型检查的扩展。在这种情况下,扩展在动态和静态上下文中都是有效的,因为没有扩展,代码仍然可以通过。 2.6 混合模式编译 在上面中,我们强调了可以使用@CompileStatic激活类型检查扩展。在这种情况下,类型检查器不会再抱怨一些未解析的变量或未知的方法调用,但它仍然不知道如何静态编译它们。 :该模板引擎依赖于类型检查扩展和AST转换来将模板转换为完全静态编译的代码。

    1.3K20编辑于 2023-02-23
  • 来自专栏偏前端工程师的驿站

    编译期类型检查 in ClojureScript

    前言  话说"动态类型一时爽,代码重构火葬场",虽然有很多不同的意见(请参考),但我们看到势头强劲的TypeScript和Flow.js,也能感知到静态类型在某程度上能帮助我们写出更健壮的代码(当然要基于充分的单元测试上啦 ClojureScript与JavaScript一样采取动态类型,但由于需要通过Google Closure Compiler编译后才能运行,因此我们可以如同JS那样借助GCC的注解来引入编译时类型检查 ,达到同样静态类型的效果。 配置项目设置 GCC的编译时类型检查仅当optimizations为simple或advanced时有效。 :source-map "resources/public/js/type_check.js.map" :closure-warnings ;; 设置GCC编译时类型检查

    1K20发布于 2018-07-11
  • 来自专栏bit哲学院

    CC++静态代码安全检查工具

    最后通过对静态代码安全检查工具优缺点的比较,给出了一些提高安全检查效果的建议。         1 C/C++ 语言静态代码安全检查工具  静态代码安全检查工具的工作类似于软件测试中的静态测试。 2 C/C++ 语言静态代码安全检查原理分析  静态代码安全检查的工作过程是:首先读入不安全函数列表,然后先对欲扫描的源程序进行词法分析。 针对缓冲区的不同类型,可有以下 4 种方法计算缓冲区长度:  (1) 字符串常量:如“satecode scan”,其缓冲区长度为字符数+ 1。 但是代码检查非常耗费时间,而且静态代码安全检查需要知识和经验的积累。对较复杂的问题,静态代码安全检查工具很可能检查不出来。所以,一方面强烈建议程序员时刻保持高质量程序设计的思想,进行主动防错设计。

    2.2K20发布于 2021-02-19
  • 来自专栏浮躁的喧嚣

    静态类型、动态类型、id、instancetype

    静态类型 一个指针变量定义为特定的对象时,使用的是静态类型,在编译的时候就知道这个指针变量所属的类,这个变量总是存储特定类的对象,默认情况下所有的数据类型都是静态数据类型 @interface Person * argv[]) { Person *p = [[Person alloc]init]; p.name = @"ABC"; [p run]; return 0; } 静态数据类型的特点 run; 在编译的时候就可以访问这些属性和方法 p.name = @"ABC"; [p run]; 并且如果是通过静态数据类型定义变量,如果访问了不属于静态数据类型的属性和方法,那么编译器就会报错 ,作为函数参数,作为函数返回值等等 id == NSObject*(万能指针) NSObject* 是一个静态类型 由于动态数据类型可以调用任意方法,所以有可能调用到不属于自己的方法,而编译时又不报错 ,所以导致运行时错误 使用场景:多态,可以减少代码量,避免调用子类特有的方法需要强制类型转化 id类型不能使用点语法,因为点语法是编译器的特性,而id类型是运行时的特性 尽量使用静态类型静态类型可以更早的发现错误

    76710编辑于 2023-11-22
  • 来自专栏程序技术知识

    js检查数据类型

    javascript数据类型和typeof运算符并不完美。很多时候都不是我们预想的结果, 例如,对于数组和null,返回“object”。 如果想要检查原始数据类型之外的任何内容,我们可能一些额外的检查技巧,例如判断构造函数。 String 字符串总是一个字符串,所以检查字符串很简单。 undefined function isUndefined (value) { return typeof value === 'undefined'; } Boolean 对于boolean typeof检查符也足够用来检查了 对于它们来说,一个instanceof语句就足够了,但是为了确保我们还检查了错误具有的“message”属性。 == 'undefined'; } Date Date在javascript中并不是真正的数据类型。但是要知道某个对象是否是Date对象,可以使用instanceof进行检查

    3.3K10编辑于 2022-02-08
  • 来自专栏偏前端工程师的驿站

    编译期类型检查 in ClojureScript

    前言  话说"动态类型一时爽,代码重构火葬场",虽然有很多不同的意见(请参考),但我们看到势头强劲的TypeScript和Flow.js,也能感知到静态类型在某程度上能帮助我们写出更健壮的代码(当然要基于充分的单元测试上啦 ClojureScript与JavaScript一样采取动态类型,但由于需要通过Google Closure Compiler编译后才能运行,因此我们可以如同JS那样借助GCC的注解来引入编译时类型检查 ,达到同样静态类型的效果。 配置项目设置 GCC的编译时类型检查仅当optimizations为simple或advanced时有效。 :source-map "resources/public/js/type_check.js.map" :closure-warnings ;; 设置GCC编译时类型检查

    1.3K70发布于 2018-01-18
  • 来自专栏AIoT技术交流、分享

    使用Cppcheck对代码进行静态检查

    在没有充足资金投入购买此类工具的情况下,难道就只能放弃高效的静态检查了吗?实则不然。 在此,强烈推荐使用 Cppcheck 这款开源免费的静态代码分析工具。 1、整理代码工程 拷贝一份代码工程用于做静态检查,整理代码工程只需要保留软件工程中的所有头文件和源文件,其他的编译文件、配置文件等,全部删除就可以。 原工程如下: 整理后效果如下: 2、静态检查 静态检查前,需要将Cppcheck软件的检查设置修改成我们预期的检查项,以下是我的静态检查设置: 点击分析,选择目录,加载需要静态检查的软件工程: 导入软件工程后 ,立刻会开始静态检查静态检查后可以看到有问题文件的说明,结果如下: 也可以设置过滤,查看不同等级的静态检查结果。 静态检查结果PDF如下:

    2.3K10编辑于 2025-03-07
领券