class Library
attr_accessor :games
def initialize(games)
@games = games
end
end
games
å‰é¢æœ‰ä¸€ä¸ªå†’å·ï¼Ÿ
æ¯å½“æˆ‘ç ”ç©¶:
æ„味ç€æˆ‘通常会找到人们说它是符å·çš„æ–‡ç« æ—¶ï¼Œé‚£ä¹ˆå°±ç»™å‡ºä¸€ä¸ªéžå¸¸æ¨¡ç³Šçš„符å·å®šä¹‰ã€‚
ç”案 0 :(得分:3)
为了简å•èµ·è§ï¼šç¬¦å·åªä¸è¿‡æ˜¯å¸¸é‡çš„åç§°ã€‚è¯¥å€¼æ— å…³ç´§è¦ï¼Œä½†åªæœ‰å…·æœ‰ç›¸åŒå称的符å·å…±äº«ç›¸åŒçš„值:
 Â符å·å¯¹è±¡è¡¨ç¤ºRuby解释器ä¸çš„å称[...]。它们是使用
:name
和:"string"
æ–‡å—è¯æ³•ä»¥åŠå„ç§to_sym
方法生æˆçš„。
有关详细信æ¯ï¼Œè¯·å‚阅Ruby docs on Symbol。
符å·çš„常用用例包括:
hsh[:foo] 0 42; hsh[:foo] #=> 42
)Method
类代表一个方法,但那是ä¸åŒçš„东西)请注æ„,与å—符串ä¸åŒï¼Œç¬¦å·ä¸ä¼šè¢«åžƒåœ¾æ”¶é›†ã€‚è¿™æ„味ç€ï¼Œä½ 应该é¿å…åƒ
è¿™æ ·çš„ä»£çkey = :"oh-my-#{bar}" # like string interpolation
从用户(攻击者)生æˆçš„输入构建bar
时。
对于attr_accessor
,å‚数(在您的情况下为:games
),创建一个具有相åŒå称(@games
)的实例å˜é‡ä»¥åŠä¸€ä¸ªsetterå’Œgetter方法(let { {1}},然åŽè®¾ç½®å™¨l = Library.new
å’Œgetter l.games=(val)
å¯ç”¨ã€‚)
ç”案 1 :(得分:2)
Symbol class的实例。然而,到目å‰ä¸ºæ¢æˆ‘å·²ç»çœ‹è¿‡çš„所有教程或åˆå¦è€…指å—ä¸éƒ½æ到并解释过它。
ç”案 2 :(得分:2)
冒å·è¡¨ç¤ºå˜é‡æ˜¯ç¬¦å·ã€‚符å·æ˜¯å—符串,有一个é‡è¦åŒºåˆ«ï¼Œç¬¦å·æ˜¯ä¸å¯å˜çš„。分é…åŽå¯ä»¥æ›´æ”¹å¯å˜å¯¹è±¡ï¼Œè€Œåªèƒ½è¦†ç›–ä¸å¯å˜å¯¹è±¡ã€‚