kenlistian

勤学多思

  IT博客 :: 首页 :: 新随笔 ::  :: 聚合  :: 管理 ::
  412 随笔 :: 0 文章 :: 23 评论 :: 0 Trackbacks

ruby的注释

行注释 #

块注释 =begin

                。。。

               =end

ruby的保留字

BEGIN    class    ensure   nil      self     when
END     
def      false    not      super    while
alias    defined? for      or       then     yield
and      do       if       redo     true
begin    else     in       rescue   undef
break    elsif    module   retry    unless
case     end      next     return   until

变量

局部变量

 

实例变量 

@为开头,属于特定的对象,一般在类中用 

类变量

@@开头,在类的定义中定义类变量
类变量可以是被类、子类以及它们的实例所共享的全局变量

全局变量

$为开头,在程序的任何地方可以引用

伪变量

self

当前方法执行主体

nil

NilClas的唯一实例

true

TrueClass实例

false

FalseClass实例

__FILE__

源名

__LINE__

行号


 常量

     以大写字母([A-Z])开始的标识符为常数。
     常数的定义(和初始化)在赋值过程完成.
     不能在方法中对常数进行定义.若对已定义的常数进行赋值的话,会出现警告信息.
      若引用未定义的常数的话,则会引发NameError异常.

 

字面值
   如数字1或字符串“hello”写入ruby中值都是。
  表达整数     124
   表达符号整数  -123
   表达浮点数   123.45
   表达浮点数   1.2e-4
   表达16进制数   0xffff
   表达二进制数  0b1001
   表达8进制    0o377
   表达字符asii码  ?a
   表达控制码      ?\C-a
   表达Meta a的代码   ?\M-a
   表达Meta-Control a 的代码  ?\M-\C-a
  有趣一点是数字中间夹 _ 下划线是作为阅读分清数字用,ruby会忽略它。

字符串字面值
双引号   反斜线表示法和展开式都是有效的
单引号   除了\\(反斜线本身)、\'(单引号)和行尾的\(忽略换行)以外,
                不会对字符串内容作任何处理
字符串引号分隔之间留空白也被当作一个空格处理。

反斜线表示:
\t    Tab(0x09)
\n   换行(0x0a)
\r  
\f     换页
\b    BackSpace
\a    Bell
\e    Escape
\s    空白
\nnn  8进制表示
\xnn   16进制
\cx  \C-x    control字符,x为ascii码
\x  字符x本身

字符串中有如下形式,其中  #{表达式} 就是表达式
如下:

“this  is #{$ruby}"  ------->"this is RUBY"
  ' this is #{$ruby}'    -------->'this is #{$ruby}'
  "this is $ruby"        ---------->"this is $ruby"
   "this is #$ruby"    ----------> "this is RUBY"     可以省略{}

批量字符串赋值
例子

print << EOS   #(从这里开始)直到标识符 EOS 之前的部分就是字面值
   this is test
   next line
EOS
equal fellow :
   print " this is test \n next line\n"

 可以使用引号(""、''或``)将开始标签“<<标识符”中的标识符括起来。这时,集成字符串的性质将取决于您所选择的引号的种类。请参考下列,当您选择双引号时,其效果与不使用任何引号时的效果相同。

# 反斜线表示法和展开式都是有效的
print <<"EOS"
The price is #{$price}.
EOS

# 效果同上
print <<EOS
The price is #{$price}.
EOS

# 展开式无法工作
print <<'EOS'
The price is #{$price}.
EOS

# 执行命令
print <<`EOC`
date
diff test.c.org test.c
EOC
规范点,用双引号或不用是不会错。
数组表达式

例:

[1, 2, 3]
%w(a b c)

语法:

`[' 表达式`,' ... `]'

分别计算每个表达式的值,然后返回由这些值构成的数组。数组是Array类的实例。

当数组元素都是字符串字面值时,可以使用%表示法将数组写成其他形式。

每次对数组表达式进行计算时都会返回一个新的数组对象。

%w(a b c) ===== ["a", "b","c"]

 

 

%表示法,它就像一个定义任意分隔符号的前缀,

字符串字面值命令输出正则表达式字面值数组表达式符号 中,
用这种以%开头的表达法。特别是当字符串或正则表达式中以非字符非数字(包含双引号(")、斜线(/)等)(它们是作为切分字面值时使用的字符)要素时,它可以减少反斜线(\)在代码中出现的次数。

  • % !STRING! : 双引号中的字符串
  • %Q!STRING! : 同上
  • %q!STRING! : 单引号中的字符串
  • %x!STRING! : 命令输出
  • %r!STRING! : 正则表达式
  • %w!STRING! : 字符串数组(以空白字符切分各元素)
  • %W!STRING! : 字符串数组(以空白字符切分各元素)。展开式、反斜线表示法都有效(ruby 1.7 特性)
  • %s!STRING! : 符号。展开式、反斜线表示法都无效(ruby 1.7 特性)

!部分是任何非字母非数字的字符,包括换行。
 若起始切分字符是括号("(","[","{","<")的话,则终止切分字符就是与其对应的括号。
若以括号作为切分字符的话,只要对应部分使用了对应的括号,就可以在其中的元素中使用与切分字符一样的括号。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2006-12-28 14:24 kenlistian 阅读(505) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。