attr_accessor相當於attr_reader和attr_writer的合集,實際上是在定義類成員變數的時候就給他定義了乙個get和set方法。
在ruby中,類成員變數都是私有的,不能直接通過(類名.成員變數名)這樣來對成員變數值進行操作。
在這個例項中可以看到,使用attr_accessor定義的成員可以直接對其進行set和get的操作,如果沒有attr_accessor,則不行。
# 例子1
# 使用attr_accessor 執行正常
1class
attraccessortest1
2attr_accessor :name
3def
initialize()
4 @name = "
test attr"5
end6
end7 t =attraccessortest1.new
8puts t.name
9 t.name = "
test attr modify
"10 puts t.name
# 例子2
# 未使用attr_accessor 執行報錯 error: #
1class
attraccessortest2
2def
initialize()
3 @name = "
test attr"4
end5
end6 t =attraccessortest2.new7#
↓↓↓↓↓↓ 未使用attr_accessor的name是不可通過 (類名.成員變數名),這樣來對成員變數值進行操作
8puts t.name
9 t.name = "
test attr modify
"10 puts t.name
ruby中的模組
什麼是模組 模組 module 是ruby特有的功能之一。類用來表現具有資料與行為 程式 的 東西 而模組大致來說,則是只有程式部分的集合體。類與模組最大的不同在於 1.模組不能建立例項 2.模組不能繼承 模組的用法 1 提供命名空間 命名空間 namespace 是為了讓方法 常數 類名稱不互相衝...
Ruby中的迴圈
1 首先是while迴圈和until迴圈 這是兩種相反的迴圈,舉例說明 x 1 until x 100 puts x x x 2 end 輸出 124 8163264 x 1 until x 100 puts x x x 2 break if x 200 end 永遠都不會執行 而while與unt...
ruby 中的符號
1.1 建立乙個繫結到特定物件的class a my string class book to sym 2.book 3.track.to s 4.track 2.相同的符號是乙個物件,相同的字元並不一定是乙個物件 這就是符號和字串最大的差別,符號是不可變的,不能對乙個符號進行修改。所以說,兩個看起...