轻舟过
我要学Ruby,于是开个楼

本帖最后由 轻舟过 于 2012-7-27 17:26 编辑

先来吐槽下,在Ruby里0竟然被认为是true,这让其他编程语言情何以堪#7036!

有时间来更新下学习进度

其实是吐槽一下一些比较奇葩的特性,主要是相对C、C++、Java、python而言

奇怪的循环

像这种循环的写法还是挺带感的,看起来也挺直观,很容易能让人理解是“做了3次"和“从1一直做到9”

[mw_shl_code=ruby,true]3.times { print "Ruby! " }

1.upto(9) {|x| print x }

[/mw_shl_code]

都是表达式

在ruby里面所有东西都是表达式,这一点感觉比较特别,比如下面的语句是合法的

[mw_shl_code=ruby,true]minimum = if x < y then x else y end[/mw_shl_code]

这里不得不吐槽一下python里没有类似的语法并且还没有三元表达式?:。

前缀符号和后缀符号

Ruby里的函数可以有特殊符号前缀和后缀,返回布尔值的函数一般会以问号结尾(貌似在lisp里见过),感叹号结尾的成员函数一般会对类本身作修改,这样可以使代码可读性更强

另外,ruby还对不同作用域的变量的符号前缀做了约定。以$开始的变量为全局变量,以@开始的为实例变量

再另外,让我想不到的是“x=”这样的字符串竟然也可以是方法名,于是o.x=1实际上是调用了o的x=函数,好奇怪的特性!

注释

除了普通的以‘#’符号开头的单行注释外,还支持"=begin"和”=end“括起来的多行注释

轻舟过
每人轮着写
展开Biu

Richeir 发表于 2012-7-26 14:43

每人轮着写Python的基础教程啥的~

可以是可以,不过不知道有没有时间和精力

如果能多召唤一些人轮着写就好了

[查看全文]
Richeir
怎么刷呢
展开Biu

轻舟过 发表于 2012-7-26 14:33

怎么刷呢

*47*

每人轮着写Python的基础教程啥的~

[查看全文]
轻舟过
小郑大伟
展开Biu

小郑大伟 发表于 2012-7-26 11:48

其实在GML里面0也是true

~你要用rm做东西么,ruby是rm的脚本语言。

为什么这些东西我都没听说过,GML是什么,一种markup language吗

另外只知道有个命令叫rm,你说的肯定不是这个

[查看全文]
轻舟过
要不先组队一起刷
展开Biu

Richeir 发表于 2012-7-26 11:14

要不先组队一起刷Python吧

怎么刷呢#7036!

[查看全文]
轻舟过
前原圭一
展开Biu

前原圭一 发表于 2012-7-26 10:48

我在学Ruby,来回个贴

其实在Lisp和Lua里0也是true,因为有nil

Lisp我学过一点,不过表示不记得了

[查看全文]
小郑大伟
做东西么
展开Biu

其实在GML里面0也是true

~你要用rm做东西么,ruby是rm的脚本语言。

[查看全文]
Richeir
要不先组队一起刷
展开Biu

*80*

要不先组队一起刷Python吧

[查看全文]
前原圭一
来回个贴
展开Biu

我在学Ruby,来回个贴

其实在Lisp和Lua里0也是true,因为有nil

[查看全文]