Ruby基础1
输出函数puts
puts "hello" a = 10 b = 5 puts a+b
数值类型转字符串类型to_s
字符串类型转数值类型用to_i
str = 123.to_s puts str puts "hellow " + 123.to_s
字符串的插值 #{传入变量}
a = 10 n = "cardithea" str = "#{n} age:#{a.to_s}" puts str
查看当前类的所有方法
puts "hello".methods
ruby修改字符
a = "hello" a = a * 3 puts a puts a.methods
字符串去除换行符用.chomp
获取字符串输入用gets
a = gets
puts a.chomp
ruby中if的使用
target = gets.to_i if target == 1 puts "命中1" elsif target == 2 puts "命中2" else puts "没有命中" end
ruby中unless的使用
unless input == 100 puts "123" else puts "321" end
ruby中switch语句的使用
target = gets.to_i case target # ..表示闭区间,左端点和右端点都能取到 # ...表示右开区间,左端点能取到 when 1..2 puts "in [1,2]" when 3...10 puts "in [3,9]" else puts "not in" end
ruby中的for和while和until
sum = 0 for i in 1..5 do sum = sum + i end print sum
target = gets.chomp.to_i ct = 0 while target == 1 puts "run" ct = ct + 1 if ct == 5 break end sleep 1 end
target = gets.chomp.to_i until target != 1 puts "run" sleep 1 end
ruby中的.each方法
#从区间中逐个取出每个数然后赋值给a然后进行sum=sum+a的计算
sum = 0 (1..5).each{|a| sum = sum+a } puts sum
ruby的异常处理
a = 100 b = 0 begin puts a/b rescue Exception => e puts "分母不能为0" end
ruby的定义方法、
def add(a, b) puts "its add function" return a + b end res = add(5, 10) puts res
ruby的导入包 require '包路径'
ruby创建类
class Student def initialize(name, age, gender) @name = name @age = age @gender = gender end def show() puts "name:#{@name} age:#{@age} gender:#{@gender}" end end st = Student.new("bob", 12, "man") st.show()
getattr,setattr快速设置
class Student #除了普通的构造getattr和setattr方法,还可以使用ruby自带的方法快速设置 #设置name可读可写 attr_accessor :name #设置仅仅可读 attr_reader :age #设置仅仅可以写 attr_writer :gender Version = "1.0" #类常量 def initialize(name, age, gender) #实例常量 @name = name @age = age @gender = gender end end st = Student.new("bob", 12, "man") st.name = "sttttt" puts st.name puts st.age puts Student::Version #访问常量使用双冒号
ruby 实例方法和类方法
class Student attr_accessor :name attr_reader :age attr_writer :gender Version = "1.0" #类常量 def initialize(name, age, gender) #实例常量 @name = name @age = age @gender = gender end def show() puts "这是实例才能调用的方法" end def self.class_show() puts "这是不需要实例化也能调用的类方法" end end st = Student.new("bob", 12, "man") st.show() Student.class_show()
ruby继承
class Student attr_accessor :name attr_reader :age attr_writer :gender Version = "1.0" #类常量 def initialize(name, age, gender) #实例常量 @name = name @age = age @gender = gender end def show() puts "这是实例才能调用的方法" end def self.class_show() puts "这是不需要实例化也能调用的类方法" end end class UniversityStudent < Student def say_english() puts "english" end def show() puts "已被重写" end end st = UniversityStudent.new("bob", 12, "man") st.show() st.say_english()
ruby新增方法,假设某个类已经写好了,现在想再给它加一个方法而不去动其原来的代码块,可以直接再写一遍并加上新加的方法
class Student attr_accessor :name attr_reader :age attr_writer :gender Version = "1.0" #类常量 def initialize(name, age, gender) #实例常量 @name = name @age = age @gender = gender end def show() puts "这是实例才能调用的方法" end def self.class_show() puts "这是不需要实例化也能调用的类方法" end end class Student def new_method() puts "here is the new add method" end end st = Student.new("bob", 12, "man") st.new_method()
模块的使用以及类中插入模块
module Md Md_v = "1.0" def self.srun() #模块自己的方法,无法被混入类中 puts "use module" end def srun2() #可以混入类中 puts "use module 2" end end class Student include Md end puts Md::Md_v puts Md.srun() puts Student::Md_v st = Student.new() st.srun2()

浙公网安备 33010602011771号