再读《为你自己学Rails》提取记录
2018-06-07 本文已影响0人
黄鸿亮
2个月后再来看这本书,依然有很多新的领悟。以下是新的领悟的记录。
- Railsr 特点与理解:
- 特别具有生产力
- 有大量的第三方套件
- 短时间把想做的东西做出来,有更多的时间可以去玩,做自己想做的事情。
- Ruby 的重点,在于可以用自然、简短的语法开发你想要的功能
- 而Rails 的重点则是可以快速的打造出产品雏型,让产品早点上线试一下水温,试一下商业模式是否可以运作
- ruby是一个物件化很彻底的语言。
基础知识
-
p
print
puts
区别- Print 不会换行
- puts会换行
- p 会有返回值,其他的没有。
-
区域变量是没有默认值的,实体变量和全局变量有默认值
nil
-
把指定变量的过程,想象成贴标签
「一張有寫著名字的標籤,貼在某個東西上面」,被貼的那個東西有形態,但標籤本身沒有,所以這樣寫是不會有任何問題的
name = "見龍" # 原本是指向一個字串物件 name = 18 # 這樣會把 name 變數改指向一個數字物件
-
变数指定:
a, *b = 1, 2, 3, 4 # => a = 1, 變數 b 前面的星號會讓 b 接收剩下的數值變成一個陣列 [2, 3, 4]
-
在ruby中只有
nil
false
会实当成假! -
原来有一个语法
if not
,相当于unless
-
""
''
在字符串中的用法区别:前者允许插入变量,后者无法插入变量
-
想要知道某個字母在字串中共出現幾次?
words = "Lorem Ipsum Dolor Sit Amet, Consectetur Adipiscing Elit." puts words.count("i") # => 算出有幾個 i,共有 5 個 puts words.count("A-Z") # => 算出所有大寫字母,共有 8 個 puts words.count("a-z") # => 算出所有小寫字母,共有 39 個
-
两个 随机抽取的方法:
puts [*1..52].shuffle.first(5) puts [*1..52].sample(5)
-
Symbol
是:带有名称的物件,与字符串的区别:- 本身代表一种状态,带有名称
- 本身不能被修改
- 无法当变量用
- 性能比字符串稍好一点点点
-
字母在字串中出现几次?
words = "Lorem Ipsum Dolor Sit Amet, Consectetur Adipiscing Elit." puts words.count("i") # => 算出有幾個 i,共有 5 個 puts words.count("A-Z") # => 算出所有大寫字母,共有 8 個 puts words.count("a-z") # => 算出所有小寫字母,共有 39 個
-
数组的
first
last
方法是ruby提供的方法,second
third
…
是Rails提供的方法。 -
取随机数最方便的作法:
[*1..100].sample(5) #取5个随机数
-
定义默认方法可以这么简单:
def say_something(message = "something") "message: #{message}" end p say_something "hi" # => message: hi p say_something # => message: something
-
Block嵌套Block,需要用到
yield
来定义是否让调用时带的block执行。 -
do…..end
{ }
的区别:p [*1..10].map { |i| i * 2 } # => 得到 [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] p [*1..10].map do |i| i * 2 end # => 得到 <Enumerator: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:map>
do….end
的优先级稍等差一点点