红宝石自己执行
回答
你将不得不为你的self
类写一个方法,它或多或少地完成你的代码行。
def split_keywords!(sep = ' ')
@keywords = @keywords.split(sep)
end
的问题,这是您要更改keywords
是什么(从String
到Array
),所以你必须编写与keywords
交互的所有其他方法,使他们将工作无论是String
或Array
。
究其原因,为String
没有split!
方法,因为它会涉及从一个类改变变量到另一个法中旬。
# This will raise a SyntaxError
class String
def split!(sep = ' ')
self = self.split(sep) # Causes self to become an Array mid-method
end
end
因此,要回答你的问题,没有,没有对你想要做什么,但我会建议重新考虑你的方法,除非keywords
能够像一个快捷方式既是String
和Array
与别担心。
omfg ...我不要求创建新方法。无论CLASS是什么,都无关紧要,关键字实例无关紧要! –
我要求一个较短的结构,像一个+ = 1缩短到a = a + 1 –
我理解你的问题和@peter,并且我已经尽最大努力做到了这样一个短暂而无懈可击的问题。但是,我在回答中告诉你的是,你想要的是不可能的。当涉及到一个结尾有爆炸方法的较短的构造时,比如'split!',如果bang方法将类从“String”变为“Array”,那么就没有一个方法,这是一个什么“分裂!”会做,而这就是为什么没有。 –
只是用"key words".split
会给你的阵列["key", "words"]
用于一类为你的自我暗示使它像
keywords = "key words"
class String
def [email protected]
self.split
end
end
p -keywords #=> ["key", "words"]
顺便说一下,你知道"[%s]" % keywords
产生相同的结果?
我不想创造新的方法! omg –
请不要粗鲁,我们尽量帮忙,看看我答案的第一部分,不能更短,下次更清楚,在你唯一的代码行中使用self表明你使用类方法工作 – peter
对不起那个男人:)其实这是rails activerecord类的一部分。因此,任何方式都是有害的,请将其作为keywords = keywords.split进行阅读。所以我已经要求内置方法或结构像+ = 1 ...哦...像keywords = keywords.uniq可能像keywords.uniq!实现,你知道。所以我问,实际上ruby的构建像+ =但类方法?因为!方法不是每个。 Thx –
- 1. 红宝石自己放
- 2. 修改自己,红宝石
- 3. 执行红宝石
- 4. 红宝石自己在外行方面?
- 5. 红宝石 - 执行到期
- 6. 把自己得到的红宝石
- 7. 红宝石鞋执行另一个红宝石程序
- 8. 红宝石执行多行CMD串
- 9. 红宝石的Net :: OpenTimeout:执行到期
- 10. sqlite3和红宝石查询执行
- 11. 黄瓜执行顺序 - 红宝石
- 12. 每个执行错误(红宝石)
- 13. 从红宝石内执行文件
- 14. 红宝石+ Ubuntu的不RVM:在执行宝石...(GEM :: FilePermissionError)
- 15. 红宝石宝石命令行工具
- 16. 红宝石宝石不会运行
- 17. 红宝石散列在红宝石
- 18. 自定义as_json红宝石
- 19. 红宝石跟踪自
- 20. 红宝石消息自
- 21. 红宝石宝石文档
- 22. 宝石安装红宝石
- 23. 调试宝石红宝石
- 24. 红宝石程序宝石
- 25. 错误红宝石宝石
- 26. Twitter的红宝石宝石
- 27. 卸载红宝石宝石
- 28. 红宝石宝石 - LoadError
- 29. 红宝石宝石LoadError
- 30. 安装红宝石宝石
什么是自我? – knut
你想要多短?像a = b? – texasbruce
我希望它像+ = 1 –