`
zhouyrt
  • 浏览: 1159138 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

类型绑定

阅读更多

在程序中引用一个变量前,变量名 必须被 绑定 到一种数据类型上。

名字 abc 得知道它是语言中的基本类型(整型数字、浮点数字、布尔、字符串)或对象类型(内置类、自定义类)。

根据 绑定时间 的早晚分为静态类型绑定和动态类型绑定。

 

一、静态类型绑定

显示声明和隐式声明(JS等除外)都产生对类型的静态绑定。

 

二、动态类型绑定

动态类型绑定时,变量的类型不是由声明语句来说明的,也不是像Fortain中通过名字的拼法来确定。而是通过赋值语句给变量赋值时,变量才与类型绑定的。

与静态类型绑定不同,动态类型绑定给程序设计带来了极大的灵活性。如使用动态类型绑定的语言很容易写出一个通用程序。

如求两个数的和

// JavaScript
function sum(x,y){
    return x+y;
}

// Java

int sum(int x, int y){
    return x + y;
}

 


JavaScript是动态类型绑定的,可以传整数型,小数型甚至字符串。但Java中只能传整数却不能是小数。

又如Javascript中,先将一个数组赋值给变量,后又将数字赋值给该变量。

list = [11,22,33];
list = 5;

 
这不会出错。

PHP 也是动态类型绑定的。

动态类型绑定有两个缺点

1,程序不可靠,相对于静态类型绑定的编译器而言,它发现错误的能力较弱。
2,代价较高,类型检测必须到运行时。

 

最后,具有变量动态类型绑定的语言一般采用单纯的解释期而非编译器。

 

 

 

 

 

 

 

2
0
分享到:
评论

相关推荐

    MVC3中如何将枚举类型绑定到下拉列表

    ### MVC3中如何将枚举类型绑定到下拉列表 在MVC3中,将枚举类型绑定到视图中的下拉列表是一个常见的需求。本文将详细介绍如何通过编写代码实现这一功能,包括创建模型、控制器逻辑以及自定义枚举转换为`SelectList`...

    详解ASP.NET MVC之下拉框绑定四种方式

    第三种方式是直接使用枚举类型绑定到下拉框。这种方式比较简洁,适用于选项为固定枚举值的情况。首先,可以在控制器中直接获取枚举值的列表,并传递给视图: ```csharp ViewBag.from_enum = Enum.GetValues(typeof...

    restgen:在 Go 中为 REST API 生成静态类型绑定

    在 Go 中为 REST API 生成静态类型绑定。 目前仅实现了足以生成 。 不确定支持更多 REST API 需要什么。 基本用法,例如生成 Shopify 的 API: ruby restgen.rb shopify data/shopify/api.json ...

    strongly-typed-bound:我的 Kmett 版本的“acowley 的强类型绑定”片段

    强类型绑定 是一个用于操作包含变量的术语的库。 使用该库编写的术语保证范围很广。 我很高兴地在描述一个强类型版本片段,这意味着术语也保证了很好的类型的。 包含了一切:类型家族、数据种类、更高级别的 monad ...

    第12章Spring MVC参数绑定的验证

    1. **简单数据类型绑定**: 在Spring MVC中,对于如int、String等基本数据类型的请求参数,Spring MVC会自动将其与控制器方法的参数进行匹配和绑定。例如,一个GET请求中的查询参数`id=123`会被自动绑定到控制器...

    f0:快速、简单、多语言的序列化协议。 f0 为任意结构的数据指定了一组简单的、可组合的二进制格式,并在 JavaScala 和 C#F# 中提供了强类型绑定,用于序列化和反序列化这些格式

    在f0的体系中,Java、Scala 和 C#/F# 有专门的强类型绑定,确保了在这些语言中进行序列化和反序列化的安全性和效率。 **序列化与反序列化** 序列化是将对象状态转换为可存储或可传输的形式的过程,而反序列化则是...

    完整版 Java开发实训课程系列-SpringMVC框架技术教程 第4章 参数绑定 (共20页).pptx

    2. **POJO类型绑定**:SpringMVC能自动将请求参数映射到POJO对象的属性上。如果请求参数名与对象属性名匹配,就会自动赋值。此外,还可以将POJO对象作为包装对象的一个属性,然后在Controller方法中以包装对象作为...

    ASP.NET数据绑定技术应用

    这些控件通常与`ArrayList`(数组)、`Hashtable`(哈希表)、`DataView`(数据视图)和`DataReader`等数据类型绑定。 当从数据绑定中取出数据时,程序一般会将数据转换为字符串格式。这种方法简化了处理过程,尤其...

    Visual C#中的数据绑定, 数据绑定根据不同组件可以分为二种

    在实际开发中,开发者应根据项目需求选择合适的数据绑定类型,以实现高效且灵活的数据交互。对于初学者,理解并掌握这两种数据绑定方式是提升编程能力的关键步骤。通过不断实践和探索,开发者可以熟练运用数据绑定...

    在wpf中把枚举显示在combobox中

    本项目展示了如何将枚举类型绑定到WPF的ComboBox控件,使得枚举值能够在UI中方便地展示和交互。 首先,枚举(Enum)在C#中是一种强大的工具,用于定义一组相关的常量。它们有助于提高代码的可读性和可维护性。例如...

    Fortran 2018接口绑定到SQLite 3的集合

    5. **类型绑定**: 对于涉及字符串和指针的函数,如`sqlite3_exec`,我们需要使用C_PTR和C_F_POINTER来处理。C_PTR定义了一个指向C类型的指针,而C_F_POINTER则允许在Fortran和C之间转换指针。 6. **异常处理**: ...

    DevExpress之TreeList使用示例

    本示例主要关注如何使用TreeList进行深层复杂类型绑定,这在处理层次结构数据时非常有用,例如组织结构、文件系统或者具有父子关系的数据模型。 1. **DevExpress TreeList简介** TreeList是DevExpress UI组件库中...

    Java动态绑定和静态绑定.doc

    动态绑定和静态绑定之间的主要区别在于,静态绑定依赖于对象的声明类型,而动态绑定依赖于对象的实际类型。这使得Java能够实现多态性,即同一接口可以有不同的行为,具体取决于调用它的对象。 静态绑定提供了一种...

    Datagrideview

    例如,在绑定 Customer 对象的属性时,需要使用正确的数据类型,例如使用 int 类型绑定 ID 属性,使用 string 类型绑定 Name 属性等。同时,需要使用正确的绑定方式,例如使用 AddBindings 方法将 Customer 对象的...

    金蝶云星空 V7.3_产品培训_PLM_系统建模.pptx

    生命周期配置是 PLM 系统建模中的重要组成部分,支持不同的业务类型绑定同一的生命周期配置,生命周期配置包括生命周期的定义、生命周期状态的定义、生命周期流程的定义等。 五、操作管理 操作管理是 PLM 系统建模...

    深入理解C++的动态绑定和静态绑定

    例如,如果声明了一个`B*`类型的指针`pB`,即使它实际上指向的是`D`类型的对象,静态绑定会根据`pB`的静态类型`B*`来决定函数调用。在以下代码中: ```cpp class B { public: void DoSomething(); }; class D : ...

    基于AngularJs select绑定数字类型的问题

    一、AngularJs中select绑定ng-model数字类型绑定问题 使用ng-model绑定select的时候默认是string字符串,如果指定的number值会绑定失败 举例说明: <body ng-app='module' ng-controller=myCtrl> 请选择性别...

    C#程序设计-3期(KC008) KC008110100014-直接格式化绑定在数据控件GridView中的日期.docx

    此外,如果你正在使用ASP.NET MVC或者.NET Core,你可以利用 Razor 视图引擎的强类型绑定和模板功能来格式化日期: ```html @Html.DisplayFor(modelItem => item.POSTTIME, "Date") ``` 这里,`DisplayFor`辅助...

    JQuery详解jQuery的bind方法

    它允许开发者指定一个或多个事件类型,并为这些事件类型绑定一个或多个处理函数。 #### 二、基本用法 `bind()` 方法的基本语法如下: ```javascript $(selector).bind(event, [data], handler); ``` - **`...

    spring mvc 参数绑定漏洞

    3. **默认配置不当**:Spring MVC的默认配置可能允许过于宽松的数据绑定,例如允许空值绑定到非null字段,或者允许任意类型的参数绑定。 针对这些风险,开发者可以采取以下措施来增强Spring MVC应用的安全性: 1. *...

Global site tag (gtag.js) - Google Analytics