![]() |
1
4
就这么简单:
从哲学上讲,我认为你的目标与Rubys的观点是不相容的,Rubys认为方法是消息,而不是可以独立的函数。 |
![]() |
2
2
等级
保持状态
因为您使用的是Ruby,所以将这些东西放在一个可以包含的模块中对您来说可能更为简单。模块可以处理维护状态,方法可以通过以下方式调用:
|
![]() |
3
1
“函数”这个词应该会立即出现一个巨大的红色闪烁警告标志,表明您使用了错误的编程语言。如果需要函数,应该使用函数式编程语言,而不是面向对象的语言。在函数式编程语言中,函数通常关闭在它们的词法环境中,这使得您试图做的事情变得非常琐碎:
任何
[注:我知道这不是一个很好的例子,因为ECMAScript实际上也是一种面向对象的语言,而且它打破了通常意义上的作用域语义
这就是用函数语言封装状态的方式,因为有函数语言,一直到lambda演算。 所以 对象
因此,在Ruby中,您将使用如下对象:
[旁注:这1:1的对应关系正是函数式程序员所说的“对象只是穷人的闭包”。当然,面向对象的程序员通常会用“闭包只是穷人的对象”来反驳。有趣的是,他们两个都是对的,但他们都没有意识到这一点。] 做 :块(有趣的是,块不是对象。)而且,由于可以使用块定义方法,因此还可以定义作为闭包的方法:
|
![]() |
4
0
似乎您可以在其他类中使用全局变量或类变量,这至少允许您跳过周围的上下文。 |
![]() |
5
0
警告:这是非常丑陋的,不应该在生产代码中使用! |
![]() |
6
0
$cat测试.rb
谨致问候-博普 |
![]() |
Stilian · 存储库设置中没有Github页面部分 2 年前 |
![]() |
Kellen · 查看$卷展栏功能列表 2 年前 |
![]() |
Akshit Thakur Ak · 我怎样才能把铁轨停下来? 2 年前 |
![]() |
johncssjs · 将数组转换为每个元素的嵌套哈希 2 年前 |
![]() |
solidsnake99 · Rails db:如何绕过验证 2 年前 |