Ruby编程语言学习笔记1

对应Ruby编程语言第一章  
# coding:utf-8
#
Blocks and Iterators(代码块和迭代器)
#
times and upto downto是由Integer实现的迭代器
#
times {|i| block }:Iterates block int times, passing in values from zero to int - 1.
puts  " #times {|i| block }: "   
5.times do |i|
     print i,  "   "
     print  " \n "
  end
3.times{ print  " Welcome to Ruby ,Jeriffe\n "}
# upto(limit) {|i| block }:Iterates block, passing in integer values from int up to and including limit.
print " \n "
puts  " #upto(limit) {|i| block }: "  
1.upto(9){|x|  print x, "   "}
print " \n "
# downto(limit) {|i| block }:Iterates block, passing in integer values from int down to and including limit.
print " \n "
puts  " #downto(limit) {|i| block }: " 
9.downto(1){|x|  print x, "   "}
print " \n "
# 数组(及类似的”可枚举的“对象)定义了一个each迭代器
#
each {|item| block }:Calls block once for each element in self, passing that element as a parameter.
print " \n "
puts  " #each {|item| block }: "   
a=[3,2,1]
a.each{|item|  print item, '   '}
print " \n "
# 在each迭代器基础上定义的其他迭代器
print " \n "
puts  " #在each迭代器基础上定义的其他迭代器: "   
a=[1,2,3,4]
b=a.map{|item| item*item}
print b, " \n "
c=a.select{|item| item%2==0}
print c, " \n "
d=a.inject do|sum,item|
  sum+item
end
print d, " \n "
# Methods(方法)
#
方法用def关键字来定义,方法的返回值是方法最后一个被执行的表达式
def square(x)
  x*x
end
print square(5), " \n "
# Assignment(赋值)
#
除传统的=操作符赋值外,Ruby还支持并行赋值:一个表达式中出现多余一个的值和变量
puts "  并行赋值: "
x,y=1,2
print  " x= ",x, ' ,y= ',y, " \n "
x,y=y,x
print  " x= ",x, ' ,y= ',y, " \n "
# 方法返回多个值
puts " #方法返回多个值: "
def polar(x,y)
  theta=Math.atan2(y,x)
  r=Math.hypot(x,y)
  [r,theta]
end
distance,angle=polar(2,3)
print  " distance= ",distance, ' ,angle= ',angle, " \n "


你可能感兴趣的:(Ruby)