ruby中attr accessor方法的理解

2022-07-11 15:00:17 字數 1015 閱讀 9040

attr_accessor相當於attr_reader和attr_writer的合集,實際上是在定義類成員變數的時候就給他定義了乙個get和set方法。

在ruby中,類成員變數都是私有的,不能直接通過(類名.成員變數名)這樣來對成員變數值進行操作。

在這個例項中可以看到,使用attr_accessor定義的成員可以直接對其進行set和get的操作,如果沒有attr_accessor,則不行。

# 例子1

# 使用attr_accessor 執行正常

1

class

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: #

1

class

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.相同的符號是乙個物件,相同的字元並不一定是乙個物件 這就是符號和字串最大的差別,符號是不可變的,不能對乙個符號進行修改。所以說,兩個看起...