File tree Expand file tree Collapse file tree 3 files changed +47
-0
lines changed Expand file tree Collapse file tree 3 files changed +47
-0
lines changed Original file line number Diff line number Diff line change @@ -27,6 +27,7 @@ source 在 [Github](https://github.com/Unayung/ruby-on-rails-developer-interview
2727* [ 為什麼要有 Migration 檔案] ( migration.md )
2828* [ 如何用單一 action 套用 /beer/(beer\_ type) 這種 route] ( beer_type.md )
2929* [ 如何讓 Person model 可以指定另一個 person 為 parent] ( person.md )
30+ * [ 請解釋這個語法 a ||= b] ( aorequalb.md )
3031* [ CSRF 是什麼] ( csrf.md )
3132* [ XSS 是什麼] ( xss.md )
3233
Original file line number Diff line number Diff line change 1313* [ 為什麼要有 Migration 檔案] ( migration.md )
1414* [ 如何用單一 action 套用 /beer/(beer\_ type) 這種 route] ( beer_type.md )
1515* [ 如何讓 Person model 可以指定另一個 person 為 parent] ( person.md )
16+ * [ 請解釋這個語法 a ||= b] ( aorequalb.md )
1617* [ CSRF 是什麼] ( csrf.md )
1718* [ XSS 是什麼] ( xss.md )
1819
Original file line number Diff line number Diff line change 1+ # 請解釋這個語法 a ||= b
2+
3+ 當 a 有值 ( 非 nil 非 false ) 時, a 保持原值
4+
5+ 當 a 為 nil / false 時, a = b
6+
7+ 我們看以下的範例
8+
9+ ``` ruby
10+ irb(main):024 :0 > a = nil
11+ => nil
12+ irb(main):025 :0 > b = 10
13+ => 10
14+ irb(main):026 :0 > a ||= b
15+ => 10
16+ irb(main):027 :0 > a
17+ => 10
18+
19+ irb(main):028 :0 > a = false
20+ => false
21+ irb(main):029 :0 > b = 20
22+ => 20
23+ irb(main):030 :0 > a ||= b
24+ => 20
25+ irb(main):031 :0 > a
26+ => 20
27+
28+ irb(main):032 :0 > a = " "
29+ => " "
30+ irb(main):033 :0 > b = " abc"
31+ => " abc"
32+ irb(main):034 :0 > a ||= b
33+ => " "
34+ irb(main):035 :0 > a
35+ => " "
36+
37+ irb(main):037 :0 > a = 689
38+ => 689
39+ irb(main):038 :0 > b = 633
40+ => 633
41+ irb(main):039 :0 > a ||= b
42+ => 689
43+ irb(main):040 :0 > a
44+ => 689
45+ ```
You can’t perform that action at this time.
0 commit comments