你是否经常在debug那些简单可避免的bug?可能你给函数传参的时候搞错了参数的顺序,或者本来应该传个Number类型的参数,你传了一个String类型?JavaScript的弱类型是这一类bug的罪魁祸首,静态类型语言中不存在此类bug。Flow就是JavaScript的静态类型检查工具,该库的目 ...
分类:
其他好文 时间:
2018-04-22 20:01:46
阅读次数:
296
一、为什么需要引入类型检查? JS作为一个弱类型语言,一个著名的黑点是它很容易就写出非常隐蔽的隐患代码,在编译期甚至运行时看上去都不会报错,但是可能会发生各种各样奇怪的和难以解决的bug。类型检查是当前动态类型语言的发展趋势,JS的强类型超集TypeScript已经有了相当的知名度,吸引了大量开发者 ...
分类:
其他好文 时间:
2018-04-22 18:07:39
阅读次数:
514
反射(reflection)是指在运行时,动态获取程序结构信息(元信息)的一种能力,是静态类型语言都支持的一种特性,如Java, golang等。这里主要详细介绍golang reflection相关知识类型与接口(Types and interfaces)type MyInt int
var i int
var j MyInti 为i
分类:
其他好文 时间:
2018-04-20 16:13:51
阅读次数:
177
类型系统的一些概念,众说纷纭,使用上也比较乱。有些东西,甚至不好严格定义。以下算学术界的一种相对“严格”的说法。 1. 先定义一些基础概念 Program Errors trapped errors。导致程序终止执行,如除0,Java中数组越界访问 untrapped errors。 出错后继续执行 ...
分类:
编程语言 时间:
2018-04-02 13:44:00
阅读次数:
212
对指针来说: 动态类型与静态类型: 动态类型是所指向的对象类型,这发生在程序运行期,静态类型是声明时指针时候,指针本身的类型,这发生在编译期 所以说静态类型声明好后就不发生改变了,动态类型,可以运行改变,也就是允许指向不同的对象类型 如: 动态绑定与静态绑定: 有虚函数的地方就是动态绑定,没有虚函数 ...
分类:
其他好文 时间:
2018-03-22 13:40:47
阅读次数:
190
当存在继承关系时,派生类的作用域嵌套在其基类的作用域之内。如果一个名字在派生类的作用域内无法正确解析,则编译器将继续在外层的基类作用域中寻找该名字的定义 在编译时进行名字查找: 一个对象、引用或指针的静态类型决定了该对象的哪些成员是可见的,即使静态类型与动态类型不一致: 1 #include <io ...
分类:
其他好文 时间:
2018-02-24 16:49:24
阅读次数:
183
特点1. 静态类型,编译开源语言 2. 脚本化的语法,支持多种编程范式(函数式,面向对象) 3. 原生,给力的并发支持并发编程 Go语言的优势: 1.脚本化的语法;开发效率高,容易上手 2.静态类型+编译型,程序运行速度有保障;静态类型+编译型语言相对于动态类型+解释型语言的效率高 3.原生的支持并 ...
分类:
编程语言 时间:
2018-02-24 14:59:20
阅读次数:
180
强类型和弱类型 如果一门语言很少隐式转换类型,说明他是强类型语言。如果经常这么做,说明他是弱类型语言。java, c++和python是强类型语言。PHP,JavaScript和Perl是弱类型语言 静态类型和动态类型 在编译时检查类型的语言是静态类型语言,在运行时检查类型的语言是动态语言。静态类型 ...
分类:
编程语言 时间:
2018-01-30 17:10:06
阅读次数:
186
1:定义:javascript是一种弱类型、动态类型、解释型的脚本语言。 弱类型:类型检查不严格,偏向于容忍隐式类型转换。 强类型:类型检查严格,偏向于不容忍隐式类型转换。 动态类型:运行的时候执行类型检查。 静态类型:编译的时候就知道每个变量的类型。 解释型:程序不需要编译,程序在运行的时候才翻译 ...
分类:
编程语言 时间:
2018-01-25 20:47:47
阅读次数:
269
动态语言:修改结构; 动态类型:运行时类型检查; 编译语言:机器码、解释器; 强类型:类型不可变。 编译型语言和解释型语言 1、编译型语言 需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成 ...
分类:
编程语言 时间:
2018-01-18 17:08:32
阅读次数:
192