请选择 进入手机版 | 继续访问电脑版

01BIM社区

 找回密码
 立即注册

扫一扫,访问微社区

查看: 570|回复: 6

Ruby中需要注意的细节

[复制链接]

1

主题

7

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2015-7-5 19:00:55 | 显示全部楼层 |阅读模式
"<<"  为唯一运算符  比如 2 << 3 = 8
但是 Ruby 中数组 也有 <<
比如:
array << obj
把给定的对象附加到数组的末尾。该表达式返回数组本身,所以几个附加可以连在一起。初学者 很容易弄不清楚
回复

使用道具 举报

1

主题

7

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 2015-7-5 19:16:00 | 显示全部楼层
Ruby 提供了四种类型的变量:

局部变量:局部变量是在方法中定义的变量。局部变量在方法外是不可用的。在后续的章节中,您将看到有关方法的更多细节。局部变量以小写字母或 _ 开始。
实例变量:实例变量可以跨任何特定的实例或对象中的方法使用。这意味着,实例变量可以从对象到对象的改变。实例变量在变量名之前放置符号(@)。
类变量:类变量可以跨不同的对象使用。类变量属于类,且是类的一个属性。类变量在变量名之前放置符号(@@)。
全局变量:类变量不能跨类使用。如果您想要有一个可以跨类使用的变量,您需要定义全局变量。全局变量总是以美元符号($)开始。
回复 支持 反对

使用道具 举报

1

主题

7

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 2015-7-5 19:21:12 | 显示全部楼层
ruby 中构造方法
class Box
   def initialize(w,h)
      @width, @height = w, h
   end
end
和其他语言不同的是 必须使用 initialize 而很多语言是 方法名与类名相同
回复 支持 反对

使用道具 举报

1

主题

7

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 2015-7-5 19:26:53 | 显示全部楼层
Ruby require 语句
$LOAD_PATH << '.'

require 'trig.rb'
require 'moral'

y = Trig.sin(Trig:I/4)
wrongdoing = Moral.sin(Moral::VERY_BAD)
使用 $LOAD_PATH << '.' 让 Ruby 知道必须在当前目录中搜索被引用的文件。如果您不想使用 $LOAD_PATH,那么您可以使用 require_relative 来从一个相对目录引用文件。

注意:在这里,文件包含相同的函数名称。所以,这会在引用调用程序时导致代码模糊,但是模块避免了这种代码模糊,而且我们可以使用模块的名称调用适当的函数。
回复 支持 反对

使用道具 举报

1

主题

7

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 2015-7-5 19:44:28 | 显示全部楼层
创建数组的集中方法:
1.names = Array.new
2.nums = Array.[](1, 2, 3, 4,5)
回复 支持 反对

使用道具 举报

1

主题

7

帖子

17

积分

新手上路

Rank: 1

积分
17
 楼主| 发表于 2015-7-5 19:45:17 | 显示全部楼层
Ruby 数组是任何对象的有序的、整数索引的集合。数组中的每个元素都与一个索引相关,并可通过索引进行获取。

数组的索引从 0 开始,这与 C 或 Java 中一样。一个负数的索引时相对于数组的末尾计数的,也就是说,索引为 -1 表示数组的最后一个元素,-2 表示数组中的倒数第二个元素,依此类推。

Ruby 数组可存储诸如 String、 Integer、 Fixnum、 Hash、 Symbol 等对象,甚至可以是其他 Array 对象。Ruby 数组不像其他语言中的数组那么刚性。当向数组添加元素时,Ruby 数组会自动增长。
回复 支持 反对

使用道具 举报

9

主题

17

帖子

91

积分

注册会员

Rank: 2

积分
91
发表于 2015-7-7 10:59:24 | 显示全部楼层
2<<3 = 16吧 00010 移动3位 10000 为16
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|01BIM社区 - 最专业的BIM技术交流平台 ( 渝ICP备15000873号 )

GMT+8, 2018-12-17 20:17 , Processed in 0.061148 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表