注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

时光机TimeMachine

——一个退役OIer

 
 
 

日志

 
 

Ruby学习笔记(并没有在持续更新中)  

2016-07-12 23:04:38|  分类: Ruby学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
2016-7-13
[.is_a?(*)]

a = [1,2]

a.is_a?(Array)  #=> true
a.is_a?(Object)  #=> true

[重定义]
重定义时,不能改变继承的父类,可以直接省略

[继承]
通过attr_***声明的实例变量可以继承
其它不能继承
某函数不重定义默认继承

[Hash->Array->Object]
hash = {} #Hash
array = hash.values #Array
array.select{|val| ... }
挑选出返回true的值
array.any?{|val| ... }
逐个判断是否有能返回true的值

do ... end 相当于{...}

[实例的复制]
如果color = Color.new
c1 = c2 = color
这里的c1,c2实际上相当于c++里的指针
如果要复制需要
c1 = color.dup
c2 = color.dup

2016-7-12
[attr_reader,attr_writer,attr_accessor]
实例变量默认都是私有的
attr_reade是外部可读
attr_writer是外部可写
attr_accessor公有

class Zima
attr_reader :age
attr_writer :thought
def initialize
@age = 18
@thought = '#$%^@$#ASDF'
@secret = '??'
end
end
zm = Zima.new
zm.thought = 'FUCKYOU'
p zm.age
zm.age = 1800000 #error
p zm.tought #error


[ ||= 符号]
看到这么一句话

@cache ||= {}

在这里就是说如果@cache是nil就初始化一下
但需要注意的是
如果@cache == false
运行@cache ||= true 会得到 @cache == true

Ruby学习笔记(持续更新中) - 时光机 - 时光机TimeMachine

[yield]

def a
yield
yield
yield
end
a { p "haha" }

=>

"haha"
"haha"
"haha"


如果想要多个

def b( i, j, k )

i.call

j.call

k.call

end

然后

b ->{ p '1' },->{ p '2' },->{ p '3' }

or
b Proc.new{ p '1' }, Proc.new{ p '2' }, Proc.new{ p '3' }


  评论这张
 
阅读(139)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017