总结这几天总的知识的积累
不提供输出的结果,请自行输出
1.普通变量能随意变换类型`
a = 1;
a = "str"
a = [1,2,3,4,5]
a = {num1: var1, num2: var2}
2.循环方法
do …end 与{ ~ }以及方法的实现
(1) .times
5.times do
puts "hello world"
end
0..5.times do |item|
puts "我现在是第#{item}次 循环"
end
(2).each
num = [1,2,3,4,5,"终"]
num.each do |item|
puts "num数组中的值是#{item}"
end
num.each_with_index do |item,index|
puts "num数组下标#{index}的值是#{item}"
end
hash = {key1: "value1",key2: "value2"}
hash.each do |key,value|
puts "hash 输出 key : #{key} , value : #{value}"
end
"All\nthe\nwords\nare\nprinted\nin\na\nnew\line.".each_line do |line|
puts line
end
(3) for
for number in 1..5
puts "number 的值是 #{number}"
end
for z in a..z
puts "z 的值是#{z}"
end
hash = {key1: "value1",key2: "value2"}
for key,value in hash
puts "hash 输出 key : #{key} , value : #{value}"
end
(4) while,until
#只要不等于0就一直跑
a = 2
while a != 0
puts "我不等于0所以我不停的输出"
a -= 1
end
#只要等于2就不跑了
until a == 2
puts "我不等于2所以我要一直跑"
a += 1
end
(5) loop
loop do
puts "请输入内容"
answer = gets.chomp #终端停顿,输入内容
if answer == '5'
puts "等于5 我退出了"
break
end
3.块,模块,类,继承
@target实例变量
@@target 类变量
$target 全局变量
target 普通变量
class A #类
attr_accessor :name, :age #可读写
def initialize(a = 10,b = 20)#创建对象不添加参数,默认参数
@a = a
@b = b
end
def show #方法
puts "这是个需要实例化才能调用的方法"
puts "在这里输出 #{@a} ,#{@b},#@a,#@b"
end
def showAttr
puts "如果没参数我就是个#{name},#{age}"
end
def self.doSome
puts"这是个直接用类调用的方法"
end
end
a = A.new
a.show
A.doSome
a.name = "ruby"
a.age = 22
a.showAttr
module M1 #模块
def hello
puts "实例对象才能调用我"
end
def M1.sayHello
puts "是不是有种静态方法的感觉"
end
end
class B < A#继承
include M1
end
b = B.new
b.hello
M1.sayHello
b.showAttr
def method
puts "块输入方法"
yield
end
method {puts "这就是块"}
def method1
puts "块输入方法"
yield 22
end
method1 {|item| puts "这就是块#{item}"}
4.方法
days = ["我是1", "我是2", "我是3", "我是4", "我是5", "我是6", "我是7"]
days = ["我是1", "我是2", "我是3", "我是4", "我是5", "我是6", "我是7"]
puts days[0]
puts days[8]#下标越界看输出
puts days[-2]
puts days[2, 3]#下标2读取3个元素
puts days[2..6]#下标2到下标6的元素
puts pp days.take(5)#获取前5个数据
puts pp days.drop(5)#舍去前5个的数据
puts days.push("today")#添加元素
puts days << ("yes")#同上
puts days.unshift("now")#开头添加元素
puts days.insert(2,"插入")#下标插入数据
puts days.pop#删除末尾的元素并返回
puts days.shift#删除开头元素并返回
puts days.delete("我是2")#删除数组中的'有的元素’并返回
puts days.uniq#删除数组中的相同元素,返回剩余数组
#puts days.sort#排序
days.sort {|i| -1}
str = "this is a word"
puts str.split#字符串抽成数组
days.instance_of?(Array)#判断类型
基础的我做好基础的事,高级的事交给高级的我,循循渐进