为什么回调在Ruby on Rails中使用符号

迪帕克

我正在努力了解何时以及何时不使用Rails中的符号。我知道没有很多方法,符号与字符串并不太相似。我也理解这些符号是很好的键,因为同名的符号在内存中占据一个地址。

我很难理解的是,为什么Rails决定在某些情况下使用符号。如果我有回调

before_action :ask_stack_overflow_question

def ask_stack_overflow_question
  puts "why did I just use a symbol?"
end

我不太明白为什么将方法视为符号?为什么我需要保持方法不变?

我在文档中找不到任何答案。

谢谢

塔德曼

这并不像看起来那样棘手。

调用时,before_action您不希望立即执行该方法,但必须描述要以某种方式执行的操作。此处使用符号表示要调用的方法名称

因此,如果将其捕获为name,则稍后在代码中的某个位置,将send(name)在适当的时间将其转换为

两者之间有很大的区别。即时版本为:

before_action method_name

它具有method_name立即执行的效果,因为Ruby将被迫运行method_name以找出返回的内容,然后将其before_action作为参数传递给

延迟的约定是:

before_action :method_name

这只是对的礼貌请求before_action,传入一个符号作为参数。before_action可以自行处理它,但是它认为合适,因此它可能会或可能不会在将来执行该方法,具体取决于情况。

这是它在Ruby中的工作方式,很少有例外。我能想到的唯一一个不能立即执行的方法就是当它被立即指定而不是作为代表符号时才是古怪的alias构造。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

何时在Ruby中使用符号

来自分类Dev

为什么我要在Ruby on Rails中使用Angular?

来自分类Dev

为什么常量插值不能在Ruby中使用百分比符号

来自分类Dev

为什么常量插值不能在Ruby中使用百分比符号

来自分类Dev

在Ruby on Rails中使用

来自分类Dev

使用Node.js时,回调在Syncano中应该是什么样的?

来自分类Dev

为什么在C语言的标头中使用'#'符号?为什么没有其他符号?

来自分类Dev

Ruby语法,在符号中使用数字?

来自分类Dev

为什么在`std :: is_member_function_pointer`中使用&符号?

来自分类Dev

为什么在操作中使用符号是不好的做法?

来自分类Dev

为什么在网址中使用“ @”符号而不是“哈希”(#)

来自分类Dev

为什么在页面重定向之类的东西中使用@符号?

来自分类Dev

为什么在页面重定向之类的东西中使用@符号?

来自分类Dev

为什么在`std :: is_member_function_pointer`中使用&符号?

来自分类Dev

为什么不能在“独立”块中使用点符号?

来自分类Dev

为什么在rails中使用%w []?

来自分类Dev

在scalatest中使用什么代替符号?

来自分类Dev

为什么在Ruby中使用枚举器

来自分类Dev

为什么在Rails 4数据库中使用载波上传图像时会回滚?

来自分类Dev

为什么围绕Ruby方法的类似Rails的回调无法正常工作?

来自分类Dev

在Ruby on Rails中使用:owner

来自分类Dev

在Ruby on Rails中使用:owner

来自分类Dev

在 Ruby On Rails 中使用 SQL

来自分类Dev

为什么Rails可以将`if`用作哈希键,而不能在Ruby中使用

来自分类Dev

何时/为什么在回调函数中使用“返回”

来自分类Dev

为什么在 Scala 中使用 foreach 而不是 onSuccess 回调?

来自分类Dev

如何在Ruby中使用变量访问符号哈希键

来自分类Dev

为什么安全导航比在Rails中使用try更好?

来自分类Dev

为什么许多人在Rails中使用“-%>”而不是“%>”?

Related 相关文章

  1. 1

    何时在Ruby中使用符号

  2. 2

    为什么我要在Ruby on Rails中使用Angular?

  3. 3

    为什么常量插值不能在Ruby中使用百分比符号

  4. 4

    为什么常量插值不能在Ruby中使用百分比符号

  5. 5

    在Ruby on Rails中使用

  6. 6

    使用Node.js时,回调在Syncano中应该是什么样的?

  7. 7

    为什么在C语言的标头中使用'#'符号?为什么没有其他符号?

  8. 8

    Ruby语法,在符号中使用数字?

  9. 9

    为什么在`std :: is_member_function_pointer`中使用&符号?

  10. 10

    为什么在操作中使用符号是不好的做法?

  11. 11

    为什么在网址中使用“ @”符号而不是“哈希”(#)

  12. 12

    为什么在页面重定向之类的东西中使用@符号?

  13. 13

    为什么在页面重定向之类的东西中使用@符号?

  14. 14

    为什么在`std :: is_member_function_pointer`中使用&符号?

  15. 15

    为什么不能在“独立”块中使用点符号?

  16. 16

    为什么在rails中使用%w []?

  17. 17

    在scalatest中使用什么代替符号?

  18. 18

    为什么在Ruby中使用枚举器

  19. 19

    为什么在Rails 4数据库中使用载波上传图像时会回滚?

  20. 20

    为什么围绕Ruby方法的类似Rails的回调无法正常工作?

  21. 21

    在Ruby on Rails中使用:owner

  22. 22

    在Ruby on Rails中使用:owner

  23. 23

    在 Ruby On Rails 中使用 SQL

  24. 24

    为什么Rails可以将`if`用作哈希键,而不能在Ruby中使用

  25. 25

    何时/为什么在回调函数中使用“返回”

  26. 26

    为什么在 Scala 中使用 foreach 而不是 onSuccess 回调?

  27. 27

    如何在Ruby中使用变量访问符号哈希键

  28. 28

    为什么安全导航比在Rails中使用try更好?

  29. 29

    为什么许多人在Rails中使用“-%>”而不是“%>”?

热门标签

归档