Ruby学习笔记-初步涉猎

闲来无事,上codecademy学下Ruby。 尊贵的红宝石,美好而瑰丽,让人不忍一睹风采……好吧我太废话了。 根据codecademy的介绍,Ruby的特性非常明显: – 高级语言(High-level) – 解释型语言(Interpreted) – 面向对象(Object-oriented) – 简单易用(Easy to use)

当然……作为一种面向对象的语言,这些特点几乎是必须的…… 话说……我不知道ruby算不算脚本语言。

变量

ruby的变量定义和数据类型真是轻便快捷,比较类似javascript吧,弱类型。 变量是无需定义的,抑或称之为动态数据类型吧。 比如

i = 1
s = "string"
arr = [1,2,3]

真是方便得要死。=_=

跟其他面向对象语言类似,ruby的所有数据类型都是对象。

操作符

操作符基本跟其他语言相似。有几个不同的地方,记录一下: 10 ** 2 #相当于10的2次方 这种写法也挺好的

字符串(string)

有两种形式: "string"'string' 比较方便的是,字符串内变量的引用:

favorite_language = "Ruby"
puts "My favorite language is #{favorite_language}!"
My favorite language is Ruby!

另外,字符串带了很多函数,可以方便的对字符串进行各类操作:

my_name = "eric"
my_name.upcase #转换大小写
=> "ERIC"
my_name.capitalize
=> "Eric"
my_name.reverse #反转
=> "cire"

puts(put string的简写)和print的区别:

3.times { puts "Hello!" }
Hello!
Hello!
Hello!
3.times { print "Hello!" }
Hello!Hello!Hello!

也就是一个是带换行的一个不带。

逻辑运算

我发现Ruby的很多基本语句都要以End结尾的……感觉似乎不太有必要吧。

最基本的IF语句:

if condition
  # Do something
end

除了elsif比较奇怪外……其他的还是很规矩

if x > y
  puts "x is greater than y!"
elsif x < y
  puts "x is less than y!"
else
  puts "x equals y!"
end

然后是比较奇特的unless语法

unless x == 10   #其实就等同于 if x!=10 感觉没少几个字- -不解为什么要加入这个语法。
  puts "I get printed!"
end

方法

方法定义跟其他语言也大同小异

def method_name(arguments)
  # Code to be executed
end

比较困惑的是返回值的问题,不过找到了答案

循环语句

ruby的循环方式还是很多的: -while

while true
  puts "I'm an infinite loop!"
end

-until

until counter == 0
  puts "Counter currently at #{counter}."
  counter -= 1
end

-for

for number in (0..5) #这里,..表示包括5,...表示不包括
  puts number
end

还有遍历数组

for item in my_array
  puts item
end

–.times

3.times { puts "Chunky bacon!" }

这样就实现了输出三个字符串,方便得要死

–.each

one_to_ten.each do |num|
  print (num**2).to_s + " "
end

其他

-数组的操作:

y.push("cartoon foxes") #增加一个元素

z = Array.new(3, "Matz!") #构造方法更灵活地创建数组

-哈希(hash)

my_hash = {
  :key1 => "First value!",
  :key2 => "Second value!",
  :key3 => "Third value!"
}
my_hash[:key2]
=> "Second value!"

所谓哈希……其实就是字典吧,键值对的数据结构。

Comments