漫谈Java与Ruby的变量

记得刚入职的时候,在Ruby方面还是一张白纸,公司要求一个星期掌握Rails的开发流程,并且能上手做一些东西,毕竟公司不是学校,为了尽快的学习Rails的开发,在Ruby本身方面,也没有过多的时间去考虑细节,最明显的就是变量乱用,分不清局部变量和成员变量,只要功能达到了,就OK了。后来趁闲暇之余,把Ruby的细节看了看,把常用的总结了一下,为了写更好的程序,必须要弄明白的。

如果你和我一样,第一语言是Java,现在接触Ruby了,希望这篇文章对你有所帮助。如果你初学Ruby,再学Java(这个可能性不大吧,呵呵),也来看看吧:->

写两段代码,一看变明了


class Person {
// 常量,永远不变了
// 需要注意的是,在Java里面,按照约定常量名全部大写,但这并不是必须的
public static final String ADDRESS = "地球";

// 静态变量,类似于全局变量
// 该变量属于类所有,而非某一个对象所有,即所有对象共享该变量
public static int count = 0;

// 成员变量(field),只要你学过任何一门面向对象的语言,这个就不用我解释了吧
// 构造函数里初始化
private String name;
private int age;

public Person(String name, int age) {
this.name = name;
this.age = age;
}

public void soothsaying() {
// 这就是局部变量了,只有在该方法内有效
long currentTime = System.currentTimeMillis();

if (currentTime % 10 == age % 10) {
System.out.println("OK, 现在的运气好极了,赶快买彩票去吧");
} else {
System.out.println("哎呀,你现在到运气好像不是太好阿!");
}
}
}



class Person
# 首先应该知道的是,Ruby的变量无需声明,直接引用即可(当然得有值了,不然会返回nil)
# Ruby中到变量是不区分类型的,你可以用任意一个变量去接受任意一个值,但不推荐这样做

# 常量,第一个字母要大写,这是必须的,而非约定.后面的字母通常也要大写,不过这就不是必须要求的了
ADDRESS = "地球"

# 类变量,@@开头(必须的),类似于java里的静态变量,该值属于类,而非对象
@@count = 0

def initialize(name, age)
# 成员变量,前面有@符号,这也是必须的上面已经说过,变量无需声明,直接引用
# 需要注意的是,成员变量一般都写在某方法下,而不是写在类的里面方法的外面(Java中成员变量的位置)
# 这也是动态语言的一个特点,在需要时加载,先执行的方法里包含有成员变量,后面的方法就可引用
@name = name
@age = age
end

# 占卜方法
# 无论方法是否有参数,可以写或不写括号,
def soothsaying
# 局部变量,小写字母或下划线开头(必须),通常局部变量里不包含大写字母(约定)
current_time = Time.new.to_i

if current_time % 10 == @age % 10
# p 是puts的简写,打印到控制台输出,在双引号当中,#{}里面可以写变量和表达式
# 如果变量为nil,在这种形式中不会打印出任何东西
p "恩,不错,现在#{@name}的运气不错"
elsif
puts "呀,不是太好呀!"
end
end
end


看完之后,应该对他们之间的差异有些明白了吧
ps:初学者,如有错误之处,还望各位多多指正
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值