分享

ruby运算符小结

 ala咪s 2016-04-27

ruby运算符小结

 
1,如果语句太长,可以用“\”链接
Ruby代码 
1. p  "行连接开始>>>" \  
2. "<<<结束"

结果: 行连接开始>>><<<结束

2, ruby中的运算符如下:优先级(由高到低)
能否重写 运算符 描述
Y     []、[]= 数组下标、数组元素赋值 
Y ** 乘幂
Y !、~、+、- 非、位非、一元加(正号)、负号
Y *、/、% 乘、除、模
Y +、- 加、减
Y >>、<< 右移、左移
Y & 位与
Y ^、| 位异或、位或
Y <=、<、>、>= 小于等于、小于、大于、大于等于
Y <=>、==、!= 各种相等判断(不能重写=~、!=、!~)
Y =~、!~ 肯定匹配、否定匹配
Y === 用来比较case语句的目标和每个when从句的项 

N && 短路与
N || 短路或
N ..、... 区间(含尾部元素)、区间(不含尾部元素)
N ? : 三元条件运算符
N =、%=、~=、/=、-=、+=、|=、&=、>>=、<<=、*=、&&=、||=、**= 各种赋值
N defined? 检查类型
N not 逻辑非
N or、and 逻辑或、逻辑与
N if、unless、while、until 判断与循环
N begin、end 定义方法,类,模块的范围

 
3,Ruby中的常用分隔符如下:
符号 名称 用途
; 分号 用来分隔一行中的多个语句
() 圆括号 提高优先级;定义方法时容纳参数列表
 " " 空格/分隔字符 在可省略"()"的地方代替"()"
, 逗号 隔开多个参数
. 点 将对象与它的方法隔开
:: 双冒号 域作用符,将模块(类)与它的常量隔开

4,Ruby中的关键字如下:

模块定义:module
类定义: class
方法定义:def,undef
检查类型:defined?
条件语句:if,then,else,elsif,case,when,unless
循环语句:for,in,while,until,next,break,do,redo,retry,yield
逻辑判断:not,and,or
逻辑值: true,false
空值:  nil   
异常处理:rescue,ensure   
对象引用:super,self   
块的起始:begin/end 
嵌入模块:BEGIN,END   
文件相关:__FILE__,__LINE__
方法返回:return
别名:  alias
 
5,Ruby中的@%#$等各种千奇百怪的符号

· (若标识符首位是小写字母或“_”,则该标识符就是局部变量或方法调用。)

· (以大写字母([A-Z])开始的标识符是常数、类名或者模块名)

· 以@开始的变量是实例变量,它属于特定的对象。可以在类或子类的方法中引用实例变量。
*若引用尚未被初始化的实例变量的话,其值为nil。Ruby的实例变量无须声明,每个实例变量都是在第一次出现时动态加入对象。Ruby的实例变量通常在方法中定义类声明——当在方法里声明实例变量时,该实例变量实际上属于该方法所在类的实例,而不是属于该方法
class Apple     
    # 定义第一个方法     
    def info1     
        # 输出实例变量@a     
        puts @a   
    end   
    # 定义第二个方法     
    def info2     
        # 为实例变量赋值     
        @a = "Hello";     
    end   
end   
# 创建Apple类实例     
apple = Apple.new   
# 调用方法     
apple.info2     
apple.info1  


· 以@@开始的变量是类变量。在类的定义中定义类变量,可以在类的特殊方法、实例方法等处对类变量进行引用/赋值:
class Foo
  @@foo = 1
  def bar
    puts @@foo
  end
end
*类变量与常数的区别如下。
· 可以重复赋值(常数则会发出警告)
· 不能在类的外部直接引用(在继承类中则可以引用/赋值)
*类变量与类的实例变量的区别如下。
· 可在子类中引用/赋值
· 可在实例方法中引用/赋值

· 以$开始的变量是全局变量,可以在程序的任何地方加以引用(因此需要特别留意)。全局变量无需变量声明。引用尚未初始化的全局变量时,其值为 nil。

#号:用来调用一个方法
*号:若左边最后一个表达式前带*的话,则将右边多余的元素以数组的形式代入这个带*的表达式中。若右边没有多余元素的话,就把空数组代入其中。
*foo     = 1, 2, 3      # foo = [1, 2, 3]
foo,*bar = 1, 2, 3      # foo = 1; bar = [2, 3]


*用在方法定义中表示可变长的变量

6,字串格式
· \\ 输出 \ (back-slash)
· \' 输出 ’ 
· \" 输出 “
· \a
· \b 删除前一个字符 “it\b is sunday” =>”i is sunday”
· \f 换行并且在紧跟第一行后面输出
· \n 换行
· \r 删除前一个单词 “it\r is sunday” => “ is sunday”
· \t 输出两个空格
· \v 换行并且在紧跟第一行后面输出

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多