Tag: 符号

什么是符号,我们如何使用它们?

我不明白符号表是什么。 有人可以帮助我理解符号,从基础知识和彻底解释。

Ruby符号与哈希中的字符串

我有这个哈希: { “title”=>”Navy to place breath-test machines on all its ships”, “url”=>”http://feeds.washingtonpost.com/click.phdo?i=a67626ca64a9f1766b8ba425b9482d49” } 事实certificate hash[:url] == nil 和 hash[‘url’] == “http://feeds.washingtonpost.com/click.phdo?i=a67626ca64a9f1766b8ba425b9482d49” 为什么? 它不应该兼容吗?

为什么没有更多项目使用Ruby符号而不是字符串?

当我第一次开始阅读和学习ruby时,我读到了关于字符串上ruby符号的强大function:符号只存储在内存中一次,而字符串每个字符串存储在内存中一次,即使它们是相同的。 例如:Rails的params控制器中的哈希有一堆键作为符号: params[:id] or params[:title]… 但其他像Sinatra和Jekyll这样大小合适的项目并不这样做: 杰奇: post.data[“title”] or post.data[“tags”]… 西纳特拉: params[“id”] or params[“title”]… 这使得阅读新代码变得有点棘手,并且难以传输代码并弄清楚为什么使用符号不起作用。 还有更多这方面的例子,这有点令人困惑。 在这种情况下,我们是否应该使用符号? 符号的优点是什么?我们应该在这里使用它们吗?

如何使用新的ruby(1.9)哈希语法从关联创建符号(哈希键)?

对不起,我甚至不确定如何提出这个问题..所以,如果你可以提出这个问题,我们将不胜感激。 # A. WORKS, but “stockroom” is hardcoded render partial: association.to_s.singularize + ”, locals: {stockroom: new_object} # B. WORKS, but uses old syntax render partial: association.to_s.singularize + ”, locals: {association.to_s.singularize.to_sym => new_object} # C. does NOT work render partial: association.to_s.singularize + ”, locals: {association.to_s.singularize.to_sym: new_object} # D. does NOT work ass = association.to_s.singularize.to_sym logger.debug “— […]

Ruby Koan:常数成为符号

在about_symbols.rb Ruby Koan(https://github.com/edgecase/ruby_koans)中,我有以下代码: RubyConstant = “What is the sound of one hand clapping?” def test_constants_become_symbols all_symbols = Symbol.all_symbols assert_equal true, all_symbols.include?(:”nonexistent”) assert_equal true, all_symbols.include?(:”What is the sound of one hand clapping?”) assert_equal true, all_symbols.include?(“What is the sound of one hand clapping?”.to_sym) end 按原样,测试通过。 三个问题: 为什么第一个断言通过? :”nonexistent”不应该包括在all_symbols中,但它包括在内,所以我必须误解一些东西。 当我注释掉第二个断言时,测试失败了,因为”What is the sound of one hand clapping?”.to_sym不包含在all_symbols中,而是:”What is […]

为什么Ruby中的符号不​​被认为是一种变量?

编程和Ruby的新手,我希望这个关于符号的问题符合要求。 我理解Ruby中的符号(例如:book , :price )特别适合作为散列键,并且可以全面地完成字符串可以执行的轻量级特定子集。 但是,我在某方面对符号感到困惑。 具体来说,当它们在attr_accessor类型的方法中使用时,它们看起来更像是一个变量。 例如, attr_reader :book, :price 。 如果它们是该用法中的变量,那么这有点令人费解,因为它们通常不在变量类型中列出(如$ global,@ instance,local,@@ class,有时候,CONSTANT,变量类型)被描述。 如果符号是以这种方式使用的变量,那么应该对它们有什么范围? 或者它们在这种情况下仍然是某种轻量级的字符串? (或者也许以更广泛的方式,符号,字符串和变量都具有基本的鸭子性质?)提前感谢您的见解和建议。

使用Ruby符号

我第一次尝试学习Ruby是在2年前,现在我又开始了。 我停止的原因是因为我无法理解Symbol类。 现在我再次处于同一点,完全迷失在何时以及为何使用Symbols。 我已经阅读了Stackoverflow上的其他post以及Google搜索的几个解释。 但我还不明白。 首先,我认为符号只是一种创建某种“命名常量”的方法,而不必像Java那样经历相同的过程。 :all 而不是使用任意值创建常量public static final String ALL = 8; 但是当你在例如attr_accessor :first_name etc.使用它时没有多大意义attr_accessor :first_name etc.符号只是一个轻量级的String类吗? 我在理解我应该如何解释,何时以及如何在我自己的类和框架中使用符号时遇到问题。