别转移话题,py js 确实不是面向对象语言,分类叫 multi paradigm,按Vector#magnitude的例子,就是会暴露内部实现
def self.log m
method = method(m)
define_method(m){|*args|
p "输入是:#{args}"
method.call(*args)
}
end
log def foo x, y
x + y
end
result = foo(2,3)
print(result)
有啥区别?
另外这个帖子里什么函数是不是第一公民的讨论几乎全部都没有在点子上,一个最简单的例子:
class Vector
def magnitude
end
end
Vector.new.magnitude
在外部看来 magnitude 必然是方法调用,而在 js 和 py 里面,方法必然是 magnitude(),属性必然是 magnitude,调用方式已经暴露内部结构了。ruby 是纯粹的面向对象语言,师承 smalltalk,不要拿什么 py js 之类的虾兵蟹将来比。
你用 python 写个例子,我们来比比行数?
你的这个回复和“哪里不简洁?”有任何关系吗?在纯 ruby 里做一个类似 sig 的装饰器像喝汤一样简单,我为什么要加什么@语法?
上面的例子不是在任意方法上面 sig 就 ok 吗?
哪里不简洁?
你怎么知道我说的是什么?
sig {params(x: SomeType, y: SomeOtherType).returns(MyReturnType)}
def foo(x, y); ...; end
这个sorbetrb里用来给函数加签名的,你看算不算方法级别的装饰器?
还有死了几年的 https://github.com/voltrb/volt 也是类似的原理 hhhhh
一个邪道方法是使用 heroku,由于 heroku 每 30 分钟不访问就会进入休眠,可以使用 github action 跑一个 cron job 每 20 分钟访问一次阻止其休眠。
当然也可以直接用 github action 抓取内容。
什么时候能把注销账号的 feature 加上?
直接用 from 就行
勞動仲裁
方法体一开始就编译了的缘故,irb 可以不是因为 binding,而是因为对 b 的调用还没编译,但是在 def 里 b 还不知道有局部变量的时候就编译成 method call 了。综上所述,可以用 method missing,或者无解
本科以下都可以不看,那可真够🐂🍺的
try 即使没方法也不会错,这个会
这个帖子是不是在亚空间迷路了
sicp
很有用
触发 const_missing
说实话我从来没用过掌托,手腕一直是悬空的
直接不要用 concern,controller 里杂七杂八的东西太多了,包括各种 params helper,这些东西多了就别想重用了
连续的,每个格子都是 40 字节的数组,链表就别的语言怎么写,这里也怎么写就行了
比这个还不如比平均工资
用 eager_load
打了个 2kyu 应该差不多,我看到兰兰是把 main 做为一个分界,在之前的 show 和之后的 show 有不同的行为,其实也挺有意思的,当然这个测起来就更难了(
hhh 很有趣,我是第五个过的,其实 show 的求值时机有点迷幻,因为测试用例里用的是 equals,这样的话我只能暴力遇到 show 就求值了,本来应该 main 触发求值的?
哈哈哈是这样的,好事多磨,不过对于有专人维护的库我也觉得提 issue 就好了,沟通成本太高
真正的 linux 用户根本不用 gui 而是用 wm(不是黑),建议你下个 i3wm 自己试试效率是不是吊打 windows/mac 的悬浮式 gui,我用 i3wm 开发基本可以不碰鼠标,除非点浏览器,用 mac 的时候手指都要磨烂了。
虽然我现在也用 mac,毕竟方便/娱乐性好,各种配套齐备,但是用 linux 时才是可以最大化开发效率的时期。
另外 lz 提到的快捷键也是,sublime text mac 的快捷键比起 linux 和 win 迷的一批,你说只是 command 和 ctrl 换下还好,问题是 combo 都压根不一样,ctrl+shift+arrow 的 combo 就按不出来,我现在都强行忘记这个快捷键了。