【问题标题】:Ruby turn string into symbolRuby 将字符串转换为符号
【发布时间】:2014-08-16 18:53:20
【问题描述】:

我想创建一个具有大小参数的视图助手(例如func(size))。问题是这个大小必须在函数中用作符号。例如,如果我将'medium' 传入func,我需要将其转换为:medium

我该怎么做?

【问题讨论】:

  • 您是在问如何将字符串转换为符号?
  • 是的,我是 ruby​​ 新手

标签: ruby-on-rails ruby


【解决方案1】:

有很多方法可以做到这一点:

如果你的字符串没有空格,你可以这样:

"medium".to_sym => :medium

如果你的字符串有空格,你应该这样做:

"medium thing".gsub(/\s+/,"_").downcase.to_sym => :medium_thing

或者如果您使用的是 Rails:

"medium thing".parameterize.underscore.to_sym => :medium_thing

参考:Convert string to symbol-able in ruby

【讨论】:

  • 从技术上讲,您不需要将空格转换为任何内容。
  • 技术上是的,但你会得到:"a symbol like this" (1.9.3)
  • 请注意,在 ruby​​ 2.2 之前符号不会被垃圾收集。因此,如果您对动态字符串执行 to_sym,您的应用程序将耗尽内存。
【解决方案2】:

您可以使用以下方法将字符串转换为符号:

string = "something"
symbol = :"#{string}"

【讨论】:

  • 或者只是string.to_sym
【解决方案3】:

或者只是

a = :'string'
# => :string

【讨论】:

    猜你喜欢
    • 2011-01-01
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多