现在只是把 ruby 作为业余爱好,周围基本没人用 ruby,现实就是现实
曾经也纠结过,但现在都是面向工资编程(java语法那么落后,C#语法那么好用,但大多选择java),python岗位多,ruby基本没有,如果 只是为了兴趣,把 ruby 当作玩游戏,娱乐一下,或工作中作为调味料,就不必在意,感觉C#像是静态语言界的ruby,python是静态语言界的java
irb(main):010:0> t='1'
=> "1"
irb(main):011:0> t=~/[12]/
=> 0
irb(main):012:0> t=~%r|#{Regexp.escape('[12]')}|
=> nil
irb(main):013:0> %r|#{Regexp.escape('[12]')}|
=> /\[12\]/
这样吗,ruby 正则太奇艺了
现在脚本语言中,python 独大,ruby 可作为自己的业余爱好来学了
不过静态语言的话,做成 ruby 那种,性能估计也不能保证
ruby 出世的时候,为什么没做成静态语言,那就没 jruby、crystal 什么事了
谢谢,又学到一些糖
能给个网址吗,我很好奇,想学学。
还发现,为?aa 就报错了,只能是 1 个字符,双引号还是省不了的,确实不如用%w
神奇的符号,确实实用
学过 perl,ruby 的一些功能是从 perl 借鉴的,但 ruby 比 perl 优雅多了,linux 上一般自带 perl,不带 ruby
name='lucy'
t=%{hi,#{name}!}
puts t #输出:hi,lucy!,所以%{}相当于%Q的作用吧
t=%q{hi,#{name}!}
puts t #输出:hi,#{name}!
是啊,ruby 太淘气,糖吃多了,怕会得糖尿病
一般不是结合%Q,%q来用吗,直接%{},默认相当于%Q{}吗?
ruby 双竖线中还能有分号,不要双竖线,是不太好整了
[1,2].each do |k;v|
v=7
print k,v,"\n"
end
绑定啊、frame 啊这些理解起来不直观,但貌似是那么回事
作用域在 ruby 中真是表现的淋漓尽致
我的理解是在 each 中,每次循环时,Proc.new 创建的对象不同,而在 for 中 Proc.new 创建的始终是同 1 个对象,所以结果不同,可否这样理解?
本想着 for i in arr 这种写法挺好,但 for 在 ruby 中作用域与 each 不一样,不能用 for 完全代替 each,那就想着 each 要是不要双竖线,就能代替 for 了,没想到不太可能,只有松本行弘本人能做了
下面的 puts i 没有用||包裹,但前面用 () 包裹了,看来还是有不用双竖线的特别情况
c=->(i) do puts i end
c.call("hi")
确实,要在块中的话,不用竖线隔起来,真不知道循环变量放哪位置合适
ruby 真的写法太多了,有点不敢再研究语法糖 了,太甜了
可是运行时解释器没有报错,那就是说这种写法是对的咯,为啥不行,是不符合代码规范,还是说有隐藏的 bug
think you @hz_qiuyuanxin 果然可行