《初入ruby》

65 阅读1分钟

点击这里写ruby

ruby的类

class User
  def initialize(name)
     @name = name
  end

  def hi(target)
    p "Hi #{target}, i am #{@name}"
  end

end 

u1 = User.new 'frank'
u1.hi 'jack'

//"Hi jack, i am frank"
  • 定义一个构造函数使用defined,可以缩写def
  • initialize是一个构造方法,用来接收参数
  • this. 用@来表示
  • 结束时,用end 表示
  • 打印puts,也可以用p表示,打印内容要"",可以插入变量
  • 对象实例化,用User.new,替代new User();User.new 'frank' 后面要带参数

ruby的数组

even_numbers = [ ]

  [1,2,3,4,5,6].select do |n|
   if n.even?
     even_numbers << n
   end
end

p even_numbers
//[2, 4, 6]
  • 第一次赋值就是声明数组
  • js中用filter,后面接函数,ruby中用select,后面接代码块do表示
  • |n|表示[1,2,3,4,5,6]中选中的
  • 判断偶数js中if n%2==0,ruby中if n.even? 数字有even的api,?是个方法。
  • even?是函数名

下面缩减

  [1,2,3,4,5,6].select { |n| n.even? }
  
  [1,2,3,4,5,6].select(&:even?)
  //&:表示当前的
  [1,2,3,4,5,6].select!(&:even?)
//!提示会改变当前数组数据
  (1..6).to_a.select(&:even?)
    //to_a不创建新数组,此数组选择
  (1..6).select(&:even?)