Ruby中的邏輯運算以及符號作爲方法名

#第十二課 邏輯運算
a,b = true, false
puts a && b #邏輯與運算
puts a || b #邏輯或運算
puts !a #取反
puts !b
puts c = (4 >3)
puts (4 > 3) && b

#三元運算
a, b = 4,5
puts c = (a > b) ? a : b

#範圍運算
(2..5).each do |n|#從2到5閉區間
  print n
end

(2...5).each do |n|#從2到4左閉右開
  print n
end

#Ruby中符號也能夠是方法名
class Student
  Version = 2#常量
  @@all_num = 2 #全局變量得要初始化否則要報錯
  include Math #導入Mathm模塊 Mix-in
  extend Math
  def initialize(name, num, sex)
    @name = name
    @num = num
    @sex = sex
  end

  class << self
    def class_fun
      puts "這是一個類方法"
    end

    def class_fun2
      puts "這也是一個類方法"
    end
  end

  def self.class_fun3
    puts "這是類方法的另一種寫法"
  end
  #至關於Java中的get方法
  def get_name
    @name
    puts @@all_num += 1
  end

  def name
    @name
  end
  #至關於Java中的set方法
  def name=(value)
    @name = value
  end

  def set_name(name)
    @name = name
    puts @@all_num += 1
  end
end

class Student
  def expend
    puts "擴展類"
  end
end

class MiddleStudent < Student
  attr_reader :name
  attr_writer :name
  def initialize(name)
    @name = name
  end

  def sub_fun
    puts "這是子類的方法#{@name}"
  end
end

puts s = Student.new("young", 20, "男")
puts s.get_name
puts s.name
puts s.set_name("改了個名字")
puts s.name =("改了個好名字")
m = MiddleStudent.new("初中生")
puts m.name

class Vector
  attr_accessor :x, :y
  def initialize(x, y)
    @x = x
    @y = y
  end

  def +(value) #符號+作爲方法名
    Vector.new(@x + value.x, @y + value.y)
  end

  def -(value)#符號-作爲方法名
    Vector.new(@x - value.x, @y - value.y)
  end
end

p a = Vector.new(3, 5)
p b = Vector.new(6, 9)
 
p a + b
p a - b
相關文章
相關標籤/搜索