最近实习快结束了,也被谈话过了,确定可以把我留下来,但是这面是做javaWeb的,很少时间放在Ruby上了,下午有点闲,写写吧,一下子写不完,我慢慢来....
目测有40个左右例子,尽量涵盖多点知识,不过一下子不发完,慢慢来
1..安装Ruby
这个,我不会说什么的,有专门的安装帖子,大家可以看一下.
2..第一个小例子
创建一个新文件test.rb , 并用编辑器打开.键入:
puts "Howdy!"
在控制台找到相应的目录,并运行:
C:>ruby test.rb
打印的结果是:
Howdy!
3..Ruby的输出
"puts" 输出的时候 结尾带上回车符,就是会自动换行.
"print" 功能一样,但是没有回车符,不自动换行.
"printf" 像C和java5一样格式化输出.
puts "puts works"
puts " with line breaks."
print "print works"
print " with no line breaks."
printf("\n\nprintf formats numbers like %7.2f, and
strings like %s.",3.14156,"me")
结果将是"
puts works
with line breaks.
print works with no line breaks.
printf formats numbers like 3.14, and strings like
me.
4..从控制台读取
使用gets
puts "What is your name?"
$name = STDIN.gets
puts "Hi "+$name
5..Ruby中的方法
1,方法简介
使用'def'开头,'end'结尾 没有大多数语言中的大括号
ef welcome(name)
puts "Hi #{name}" # #{ } 代表着变量
end
welcome("Cass")
结果是:
Hi Cass
2,方法调用时,括号是可以省略的
def welcome(name)
puts "Hi#{name}"
end
welcome "Cass"
对比前一个例子,二者是一样的,只是括号在与否.
同样,不带参数的方法更能体现出来
"hello".upcase() => "HELLO"
"hello".upcase => "HELLO"
3,方法返回值
和别的语言类似,使用'return'关键字
def multiply(a,b)
product = a * b
return product
end
puts multiply(2,3) =>6 #忘记说了 有些输出简单的 直接使用 =>结果表示了
在ruby中,甚至可以丢掉return
def mult(a,b)
product = a * b
end
puts mult(2,3) #这里可以看出,ruby会然会最后一个表达式
更简单的是,因为return是返回了最后一个表达式,所以完全可以不使用局部变量product
def mult(a,b)
a * b
end
puts mult(3,3) =>9
4,可选参数(表达不好,看例子)
def test(a=1,b=2,c=a+b)
puts "#{a},#{b},#{c}"
end
test => 1,2,3
test 5 => 5,2,7
test 4, 6 => 4,6,10
test 3, 4, 6 => 3,4,6 #通过例子可以看出
5,额外参数
额外参数就是前面有* 的最后一个变量(用each对其进行迭代)
def test(a=1,b=2,*c)
puts "#{a},#{b}"
c.each{|x| print " #{x}, "} # 后面将提到'each'
end
test 3, 6, 9, 12, 15, 18
结果:
3,6
9, 12, 15, 18,
6,多个返回值
def getCostAndMpg
cost = 30000
mpg = 30
return cost,mpg
end
AltimaCost, AltimaMpg = getCostAndMpg
puts "AltimaCost = #{AltimaCost}, AltimaMpg = #{AltimaMpg}"
结果:
AltimaCost = 30000, AltimaMpg = 30
6..类
ruby中,你可以向已有类库中添加方法,举个例子,比如说判断String的方法,NullOrEmpty()
ruby字符串处理类中是没有的,要是写的话 if(mystring != null && mystring != "") 这样是最普遍的表示方法了。
对于常用而库中有没有的函数,可以这样定义:
class String
def NullOrEmpty?
(self == nil || self == "")
end
end
puts "test".NullOrEmpty?
puts "".NullOrEmpty?
是不是很酷,但是这样做并不安全,自己慢慢挖掘~
7..变量名分类
//吃饭去了,,待续
全局变量开始以'$'开始
类变量'@@'开始
实例变量以'@'开始
局部变量,方法名和方法参数 以小写字母开头
类名称,模块名称和常量以大写字母开始
变量名称由字母,数字和下划线
方法名称可能结束以“?”,“!”,或“=”结尾。“?”结尾的方法 意味着布尔运算(例如,“instance_of?”)。“!” 结尾的方法意味着危险的东西,比如字符串被修改的地方(例如,“UPCASE!”)