一个变量被赋予了某个数据类型的值,可以随时再赋予这个变量其它数据类型的值
2012-11-09 14:44
405 查看
class Worker < Person def talk puts "I am a worker. my name is "+@name+", age is "+@age.to_s end # talk方法结束 end # Worker类结束 p5=Worker.new("kaichuan",30);p5.talk p6=Worker.new("Ben");p6.talk p5=5 p6=6 print "#{p5},#{p6}" puts p3=3 p4=4 print "#{p3},#{p4}" puts p3=Student.new("kaichuan",25); p3.talk p4=Student.new("Ben"); p4.talk =begin I am a worker. my name is kaichuan, age is 30 I am a worker. my name is Ben, age is 18 5,6 3,4 I am a student. my name is kaichuan, age is 25 I am a student. my name is Ben, age is 18 请按任意键继续. . . =end
Ruby 语言中,一个变量被赋予了某个数据类型的值,在程序中你可以随时再赋予这个变量其它数据类型的值。请看程序 E5.3-2.rb :
# E5.3-2.rb
a=5
print "a = ",a," ", a.class, "\n"
a="hh" # a: 5 --> "hh"
print "a = ",a," ", a.class, "\n"
运行结果:
>ruby E5.3-2.rb
a = 5 Fixnum
a = hh String
>Exit code: 0
相对于 Java, Ruby 对于变量的使用给予了你很大的自由。在 Java 中,编译的时候,就完成了类型匹配的检测,这属于前期绑定; Ruby 是在运行中检测,检测类型匹配吗?不是检测类型匹配,而是检测语法,只要与语法定义不矛盾,就能通过。 Ruby 的动态类型特点是一把双刃剑,熟手游刃有余,生手常常伤着自己。在没有了编译器查错的日子里,又没有完全驾驭 Ruby 之前,如何避免常常出错呢?有一个下口之处,就是死盯住变量的命名。用一些有意义的名字,不必太长,但是应该少用单字符,除非是循环指针变量。你也许认为我自己能看懂就行了,这是十分有害的想法。在一个项目组中,程序员是要彼此相互沟通合作的。当坏习惯养成后,要改是很难的。
相关文章推荐
- 当一个变量已经定义为一个数据类型时,可以改变他的数据类型吗
- 函数名function是一个数据类型,可以赋值
- 一个简单的数据类型判断:占用不同大小字节的变量比较
- 变量交换 如果要把两个整型变量a、b的值交换,一般要采用一个中间变量做过渡, 但也可以在不借助任何其它变量的情况下完成。
- 写一个方法,参数接收一个String类型的对象,最终可以把这个字符串参数中出现过的每一个字母打印出来 例如: "wwqweqdasdafdsfdsferer" 将来方法接收这个参数后会打印:
- python中如何判断一个变量的数据类型?(原创)
- Transact-SQL 示例 - 如何获取一个变量的数据类型
- 类是一个数据类型;对象是类的变量,定义一个类,是一个抽象概念
- JPA学习笔记---JPA实体Bean的建立---链接上一个博文:对实体Bean中属性进行操作:保存日期类型,设置字段的长度,名字,是否为空,可以声明枚举字段;可以存放二进制数据,可以存放
- python中如何判断一个变量的数据类型
- 实现一个clone函数并可以对js中的5种主要数据类型进行值复制
- 在MyBatis的select、insert、update、delete这些元素中都提到了parameterType这个属性。MyBatis现在可以使用的parameterType有基本数据类型和Ja
- oracleday18(数据类型记录变量 多个变量放一个自创的里面 )
- 实现一个函数clone,可以对javascript中的5种主要的数据类型进行值复制。
- ios 中调用函数的方法是消息传递,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以Objective-C可以在runtime的时候
- 【C语言】使用回调函数实现一个通用的冒泡排序,可以排序不同的数据类型。
- 实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。
- type,isinstance判断一个变量的数据类型
- 编写一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可以是整形,单精度,双精度。用重载函数实现
- c# 把一个匿名对象赋值给一个Object类型的变量后,怎么取这个变量? c# dynamic动态类型和匿名类 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic 深入浅析C#中的var和dynamic