草庐IT

ruby-on-rails - ruby 符号设置

我在我的代码中设置了如下符号:"name_of_symbol".to_sym但是,我的首席工程师在代码审查期间发现它是一种不好的做法,并要求我设置如下符号::"name_of_symbol"当我问他为什么?他说这是不好的做法,但是当我问他只是说这是什么原因时,这并不是一个令人满意的答案。所以怎么回事?有什么区别吗? 最佳答案 冒号表示一个符号。我不会将其称为非常规实践,而是糟糕的实践,这可能会使代码更难理解。我知道:"Someweird_stuff"是合法的,但我不喜欢它,就我个人而言,我宁愿使用:Some_weird_stuff并

ruby - 在符号上链接 & to_proc

Rubyist众所周知,&会在符号上调用to_proc,所以[:a,:b,:c].map(&:to_s)相当于[:a,:b,:c].map{|e|e.to_s}#=>["a","b","c"]假设我想在to_s之后立即调用另一个方法,这两个实现将起作用:[:a,:b,:c].map{|e|e.to_s.upcase}[:a,:b,:c].map(&:to_s).map(&:upcase)我的问题是,有没有一种方法可以将&Symbol#to_proc调用链接到一个参数中?像这样的东西:[:a,:b,:c].map(&:to_s:upcase)谢谢! 最佳答案

ruby - `:~@` 和 `:!@` 是如何解析的?

当我编写:~@和:!@时,它们被计算为:~和:!,这也可以通过编写:~和:!来实现。这些表达式是如何解析的,@去了哪里? 最佳答案 这与解析器中的优先级有关。一个简单的破折号也破坏了冒号表示符号的语法:2.1.2:004>c=:test-thingNameError:undefinedlocalvariableormethod`thing'formain:Object不过,解决它很容易:尝试:'~@',(当然,如果你能避免在你的代码中创建这样一个奇怪的符号,那可能是一个更好的主意......)

C# 相当于 Ruby 符号

为了好玩,我正在开发一个C#小应用程序。我喜欢这种语言,但有些事情让我感到不安......有没有办法做#define(C模式)或符号(ruby模式)。ruby符号非常有用。它只是一些以“:”开头的名称(例如“:guy”),每个符号都是唯一的,可以在代码中的任何地方使用。在我的例子中,我想向函数发送一个标志(连接或断开连接)。最优雅的C#方法是什么?这是我想做的:BgWorker.RunWorkersAsync(:connect)//...privatevoidBgWorker_DoWork(objectsender,DoWorkEventArgse){if(e.Arguement==:

ruby - Emacs ruby​​ 符号单词补全

我经常定义一个ruby​​符号(例如:some_value),然后我想创建一个具有相同名称的方法defsome_value。不幸的是,第二次出现some_value字符串的自动完成(M+/)不起作用,略有不同(:some_valuevssome_value).如何设置emacs来处理此类事件? 最佳答案 假设M-/绑定(bind)了dabbrev-expand,你可以配置dabbrev-mode在扩展字符串时忽略某些前缀。要使单个冒号成为要忽略的前缀,请键入M-xcustomize-group然后dabbrev这将带您进入dabbr

ruby-on-rails - 如何检查当前语言环境是否等于字符串

我正在尝试确定是在我的Web应用程序上显示Spanish还是English按钮。"class="thin">English"class="thin">Spanishif条件always失败,西类牙语按钮始终显示。RubyMine在检查时(调试期间)显示:那么为什么比较失败呢? 最佳答案 在搜索/比较/设置语言环境时,您应该使用符号而不是字符串。尝试:那里有I18n的文档http://guides.rubyonrails.org/i18n.html 关于ruby-on-rails-如何检查

ruby - 为什么 File.new 的参数不是符号而是字符串?

我想知道为什么编写File库的人决定用字符串而不是符号来确定文件打开模式的参数。比如现在是这样的:f=File.new('file','rw')但这不是更好的设计吗f=File.new('file',:rw)甚至f=File.new(:file,:rw)例如?这似乎是使用它们的最佳场所,因为参数绝对不需要可变。我很想知道为什么会这样。更新:我刚读完arelatedquestionaboutsymbolsvs.strings,我认为大家的共识是,符号只是不如字符串广为人知,反正大家都习惯用字符串来索引哈希表。但是,我认为Ruby标准库的设计者以对符号主题一无所知为由辩护是不合理的,所以我

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

我不明白什么是符号表。谁能帮我理解符号,从最基础的开始并彻底解释。 最佳答案 Symbols的最基本用法可以用以下短语很好地概括:“Symbols是具有人类可读名称的常量整数”(作者WeiLieSho)。如果在C中输入:#defineUSER1#defineADMIN2#defineGUEST3[...]user.type=ADMIN;然后在ruby​​中你只需要使用一个Symbol:user.type=:admin因此,ruby中的Symbol只是一些值,其中唯一重要的是名称,或者换句话说:Symbol的值就是它的名称em>.符号

ruby - Codecademy "converting between symbols and strings" ruby 类(class)

这些是Codecademy的说明:Wehaveanarrayofstringswe'dliketolateruseashashkeys,butwe'drathertheybesymbols.Createanewarray,symbols.Use.eachtoiterateoverthestringsarrayandconverteachstringtoasymbol,addingthosesymbolstosymbols.这是我写的代码(提供了strings数组):strings=["HTML","CSS","JavaScript","Python","Ruby"]symbols=[]

ruby-on-rails - 默认情况下如何使用字符串键创建哈希

当我执行以下操作时:h={"a":123}Ruby自动将键转换为符号。h[:a]#=>123h["a"]#=>nil如何防止这种行为?我用字符串键创建了散列,并希望保持这种状态,而不必总是调用Hash#stringify_keys。 最佳答案 使用哈希火箭语法:h={"a"=>123}#=>{"a"=>123}h['a']#=>123 关于ruby-on-rails-默认情况下如何使用字符串键创建哈希,我们在StackOverflow上找到一个类似的问题: h