A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 管章鹏 中级黑马   /  2013-4-1 20:36  /  2627 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 管章鹏 于 2013-4-2 08:09 编辑

最近学习var弱类型,那么我想问一下什么是弱类型,什么又是强类型呢?
在系统设计中应该首先考虑使用哪种类型? 如果在不知道数据是什么类型的情况下用var会不会对效率构成影响呢?
求大神解答

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

4 个回复

倒序浏览
强类型是在编译的时候就确定类型的数据,在执行时类型不能更改,强类型安全,因为它事先已经确定好了,而且效率高。如编译型编程语言c++,java,c#,pascal 等。
弱类型在执行的时候才会确定类型,弱类型更灵活,但是效率低,而且出错概率高.如解释型编程语言,如 javascript,vb 等。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 曾玉锋 于 2013-4-1 21:01 编辑

用通俗的话来讲,先编译,后执行的语言是强类型语言(C/C++、Pascal/Object   Pascal(Delphi)、VB、java、c#等);而解释型语言是弱类型语言,也就是边解释边执行,在执行的过程中来解释(如javascript、vbscript、sql脚本等脚本语言)。
var 是推断类型,在强类型语言中,定义一个var 类型的变量,必须给它赋予明确的值,否则编译不能通过。(不能这样:var i; i=0;)也不能作为参数类型和返回值类型。
在弱类型语言中,var 类型的变量,可以先声明,再在变量作用域内对其赋值,可以在任何时候改变var变量的类型和值。也就是说,在弱类型语言中,var变量的类型是不确定的,赋予它什么类型就是什么类型。var i;i=1;i="abc";  这样是正确的。

在使用var 作为变量的类型 应该不会太影响性能,因为对于强类型语言来说,在编译的时候已经把var类型编译成确定的类型。而弱类型语言,var 是可省略的,我想,应该没啥影响才是。  这是我的理解,希望对你有所帮助。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
首先,在.net Framework中,var关键字不是“弱类型”的意思。他正确的意思是“隐式类型推断”。实际上,C#语言中,总是强类型的数据,没有弱类型这个概念。
var只是在脚本语言中才表示弱类型,会在编译的时候才真正确定其类型。
而在C#语言中,用var和其他强类型的关键字,在性能方面并不会有什么差异。甚至推荐用var,因为简单快捷方便。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
杜磊 发表于 2013-4-1 22:29
首先,在.net Framework中,var关键字不是“弱类型”的意思。他正确的意思是“隐式类型推断”。实际上,C# ...

学习了,谢谢啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马