再读《为你自己学Rails》提取记录

2018-06-07  本文已影响0人  黄鸿亮

2个月后再来看这本书,依然有很多新的领悟。以下是新的领悟的记录。

  1. Railsr 特点与理解:
    • 特别具有生产力
    • 有大量的第三方套件
    • 短时间把想做的东西做出来,有更多的时间可以去玩,做自己想做的事情。
  2. ​Ruby 的重点,在于可以用自然、简短的语法开发你想要的功能
  3. 而Rails 的重点则是可以快速的打造出产品雏型,让产品早点上线试一下水温,试一下商业模式是否可以运作
  4. ruby是一个物件化很彻底的语言。

基础知识

  1. p print puts 区别

    • Print 不会换行
    • puts会换行
    • p 会有返回值,其他的没有。
  2. 区域变量是没有默认值的,实体变量和全局变量有默认值nil

  3. 把指定变量的过程,想象成贴标签

    「一張有寫著名字的標籤,貼在某個東西上面」,被貼的那個東西有形態,但標籤本身沒有,所以這樣寫是不會有任何問題的

      name = "見龍"    # 原本是指向一個字串物件
      name = 18       # 這樣會把 name 變數改指向一個數字物件
    
  4. 变数指定:

    a, *b = 1, 2, 3, 4
    # => a = 1, 變數 b 前面的星號會讓 b 接收剩下的數值變成一個陣列 [2, 3, 4]
    
  5. 在ruby中只有nil false 会实当成

  6. 原来有一个语法if not ,相当于unless

  7. "" '' 在字符串中的用法区别:

    前者允许插入变量,后者无法插入变量

  8. 想要知道某個字母在字串中共出現幾次?

    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 個
    
  9. 两个 随机抽取的方法:

    puts [*1..52].shuffle.first(5)
    puts [*1..52].sample(5)
    
  10. Symbol是:带有名称的物件,与字符串的区别:

    • 本身代表一种状态,带有名称
    • 本身不能被修改
    • 无法当变量用
    • 性能比字符串稍好一点点点
  11. 字母在字串中出现几次?

      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 個
    
  12. 数组的first last方法是ruby提供的方法,second third 是Rails提供的方法。

  13. 取随机数最方便的作法:

    [*1..100].sample(5)    #取5个随机数
    
  14. 定义默认方法可以这么简单:

       def say_something(message = "something")
        "message: #{message}"
      end
    
      p say_something "hi"     # => message: hi
      p say_something          # => message: something
    
  15. Block嵌套Block,需要用到yield来定义是否让调用时带的block执行。

  16. 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的优先级稍等差一点点

上一篇下一篇

猜你喜欢

热点阅读