2.4Ruby语言的非操作符(Nonoperator)和操作符(Operator)

非操作符

Ruby语言包括11个非操作符:圆括号(( ))、方括号([ ])、花括号( { })、圆点(.)、逗号(,)、分号(;)、冒号(:)、双冒号(::)、箭头(=>)、星号(*)、与(&)、小于(<)。

操作符

操作符,又称为运算符。有一个操作数的操作符称为一元操作符,有二个操作数的操作符称为二元操作符。

1.一元操作符

+、-、~、!
#对应方法名
+@、-@、~@、!@
class Point
  .
  .
  .
  def  +@ 
    dup         #返回自己的副本
  end

  def -@ 
    self.class.new(-x,-y)   #颠倒x、y各自的正负
  end

  def ~@ 
    self.class.new(-y,x)    #使坐标翻转90度
  end
end

point = Point.new(3, 6)
p +point  #=> (3, 6)
p -point  #=> (-3, -6)
p ~point  #=> (-6, 3)

2.求幂操作符

**

3.算术操作符

+、-、*、/、%

4.赋值操作符

#部分常见赋值操作符
&&=、&=、||=、|=、^=、<<=、>>=、+=、-=、*=、/=、%=、**=、=

5.移位和追加操作符

类Fixnum和Bignum定义了<<和>>移位操作符。<<还经常被用于追加操作符,String、Array及IO类都定义了<<追加操作符。

message = "hello"     #字符串
messages = []         #空数组
message << " world"   #添加右侧内容至message字符串
messages << message   #添加message字符串至messages数组
STDOUT << message     #打印message内容至标准输出流

6.位补、并、 交操作符

~、&、|、^

7.比较操作符

<、<=、>、>=、<=>

8.相等性操作符

==、!=、=~、!~、===

9.布尔操作符

&&(与)、||(或)、!、and、or、not

10.defined?操作符

defined?是一个一元操作符,它测试其操作数是否已经被定义过了。

15.逻辑操作符

条件1 || 条件2 || 条件3  #当条件中的任何一个为真时,即返回真值,按逻辑顺序从左往右运算

16.条件操作符

条件 ? 表达式1 : 表达式2
a = 1
b = 2
max = (a > b) ? a : b
p max        #=>2

上面的表达式与下面使用if语句的表达式是等价的。

if 条件
  表达式1
else
  表达式2
end

条件操作符又称为三元操作符,虽然条件操作符写法比较简洁,但是如果表达式过于复杂就会使程序变得难懂,因此建议不要滥用此写法。

17.范围操作符

范围操作符有..和…两种。x..y和x…y的区别在于,前者的范围是x到y,而后者的范围是从x到y的前一个元素。

5..10   #=>5,6,7,8,9,10
5...10  #=>5,6,7,8,9

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/ruby/rubybasic/1516.html

发表评论

登录后才能评论