美文网首页IOS 拾遗
静态类型检查总结

静态类型检查总结

作者: madaoCN | 来源:发表于2017-05-14 23:15 被阅读6次
  • 对于id类型的变量,调用任何方法都能够通过编译(调用不存在的方法时候会抛出运行时错误)

id类型可以存储任何类型的对象,无法通过—>来获取类的实例变量和方法。

  • id类型和定义了为其他类型的对象可以相互赋值

赋值操作包括=赋值,传参数,和返回值。

  • 强类型变量(静态类型),如果调用类或者父类中不存在的方法,编译器会抛出警告
  • 若是静态类型变量,子类型的实例变量可以赋值给父类的实例变量
  • 若是静态类型变量,父类型的实例变量不可以赋值给子类的实例变量
  • 判断哪个类的方法被执行,需要查看实际执行这个变量的类型(动态性)
  • id类型

为什么id 类型 不是 *id 呢?
objc/objc.h中的定义

/// A pointer to an instance of a class.
typedef struct objc_object *id;

A pointer to an instance of a class.意思是指 id是指向类实例的一个指针,所以id本身就是一个指针,不需要加*号了。

相关文章

  • 静态类型检查总结

    对于id类型的变量,调用任何方法都能够通过编译(调用不存在的方法时候会抛出运行时错误) id类型可以存储任何类型的...

  • 语言类型实例

    无类型: 汇编弱类型、静态类型 : C/C++弱类型、动态类型检查: Perl/PHP强类型、静态类型检查 :Ja...

  • auto

    静态类型和类型检查。对于所谓的静态类型,类型检查主要发生在编译阶段;而对于动态类型,类型检查主要发生在运行阶段。这...

  • 编程语言里函数方法类型检查的重要性

    importance of type checking and evaluation 静态类型检查和动态类型检查:...

  • js语言进阶 - Flow

    flow静态类型检查工具,给javaScript提供静态类型检查能力,为其增加了一个编译的过程 开始 安装babe...

  • [C++11阅读][3-2-1]auto类型推导(上)

    静态类型、动态类型 C/C++是静态类型语言,在编译时进行类型检查。后来一些新兴的语言,比如Python、Java...

  • 强类型 & 弱类型 静态类型 & 动态类型

    强类型 & 弱类型 (针对类型转换是否)静态类型 & 动态类型 (针对类型检查时机) 强类型 & 弱类型 强类型:...

  • Java核心 -- 动态代理

    动态类型和静态类型:语言类型是 运行时 检查,还是 编译期 检查 强类型和弱类型:为 不同类型 的变量赋值时,是否...

  • ts数据类型

    TypeScript 不是「强类型」,是「静态类型检查」的「弱类型」。ts的数据类型: 布尔类型 boolean数...

  • 1. typescript 语法学习笔记

    动态类型语言(Dynamically Typed Language)运行期间才会作类型检查; 静态类型语言(Sta...

网友评论

    本文标题:静态类型检查总结

    本文链接:https://www.haomeiwen.com/subject/varcxxtx.html