O melhor tutorial Operadores de rubi em 2024. Neste tutorial você pode aprender Rubi operadores aritméticos,comparação rubi,Rubi operador de atribuição,atribuição paralela de rubi,Operadores bit a bit do Ruby,operadores lógicos rubi,Rubi operador ternário,Rubi operador de intervalo,Rubi definida? Operator,Uso 1,Uso 2,Uso 3,Uso 4,Rubi operador ponto "." E o operador dois pontos duplos "::",Rubi precedência do operador,
Rubi suporta um rico conjunto de operadores. A maioria dos operadores são realmente chamadas de método. Por exemplo, a + b é interpretado como um. + (B), em que a variável de um método que aponta + é invocada, b como um parâmetro na chamada de método.
Para cada operador (+ - * / **% & | ^ << >> && ||), tem um operador de atribuição abreviatura correspondente (+ = - =, etc.).
Suponha que a variável de um valor de 10, o valor b variável de 20, então:
运算符 | 描述 | 实例 |
---|---|---|
+ | 加法 - 把运算符两边的操作数相加 | a + b 将得到 30 |
- | 减法 - 把左操作数减去右操作数 | a - b 将得到 -10 |
* | 乘法 - 把运算符两边的操作数相乘 | a * b 将得到 200 |
/ | 除法 - 把左操作数除以右操作数 | b / a 将得到 2 |
% | 求模 - 把左操作数除以右操作数,返回余数 | b % a 将得到 0 |
** | 指数 - 执行指数计算 | a**b 将得到 10 的 20 次方 |
Suponha que a variável de um valor de 10, o valor b variável de 20, então:
运算符 | 描述 | 实例 |
---|---|---|
== | 检查两个操作数的值是否相等,如果相等则条件为真。 | (a == b) 不为真。 |
!= | 检查两个操作数的值是否相等,如果不相等则条件为真。 | (a != b) 为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 | (a > b) 不为真。 |
< | 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 | (a < b) 为真。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 | (a >= b) 不为真。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 | (a <= b) 为真。 |
<=> | 联合比较运算符。如果第一个操作数等于第二个操作数则返回 0,如果第一个操作数大于第二个操作数则返回 1,如果第一个操作数小于第二个操作数则返回 -1。 | (a <=> b) 返回 -1。 |
=== | 用于测试case语句的 when 子句内的相等。 | (1pt.10) === 5 返回 true。 |
.eql? | 如果接收器和参数具有相同的类型和相等的值,则返回 true。 | 1 == 1.0 返回 true,但是 1.eql?(1.0) 返回 false。 |
equal? | 如果接收器和参数具有相同的对象 id,则返回 true。 | 如果 aObj 是 bObj 的副本,那么 aObj == bObj 返回 true,a.equal?bObj 返回 false,但是 a.equal?aObj 返回 true。 |
Suponha que a variável de um valor de 10, o valor b variável de 20, então:
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符,把右操作数的值赋给左操作数 | c = a + b 将把 a + b 的值赋给 c |
+= | 加且赋值运算符,把右操作数加上左操作数的结果赋值给左操作数 | c += a 相当于 c = c + a |
-= | 减且赋值运算符,把左操作数减去右操作数的结果赋值给左操作数 | c -= a 相当于 c = c - a |
*= | 乘且赋值运算符,把右操作数乘以左操作数的结果赋值给左操作数 | c *= a 相当于 c = c * a |
/= | 除且赋值运算符,把左操作数除以右操作数的结果赋值给左操作数 | c /= a 相当于 c = c / a |
%= | 求模且赋值运算符,求两个操作数的模赋值给左操作数 | c %= a 相当于 c = c % a |
**= | 指数且赋值运算符,执行指数计算,并赋值给左操作数 | c **= a 相当于 c = c ** a |
Ruby também suporta variáveis de atribuição paralelas. Isso permite múltiplas variáveis podem ser inicializados por uma linha de código Ruby. Por exemplo:
A = 10 b = 20 C = 30
Usando atribuição paralela mais rápida Disclaimer:
a, b, c = 10, 20, 30
Atribuição paralela ao trocar os valores das duas variáveis também são úteis:
a, b = b, c
Operadores bit a bit que actuam sobre o pouco e pouco a operação bits.
Se se considerar que a = 60, b = 13 e, agora num formato binário, que é como se segue:
A = 0011 1100
b = 0000 1101
-----------------
a & b = 0000 1100
a | b = 0011 1101
a ^ b = 0011 0001
~ A = 1100 0011
A tabela a seguir lista o rubi apoiar operadores bit a bit.
operadores | descrição | Exemplos |
---|---|---|
& | Se ambos existem em dois operandos, o binário operador E para copiar um resultado. | (A & b) será 12, isto é, 0000 1100 |
| | Se estiver presente em qualquer operando, o binário operador OR para copiar um resultado. | (A | b) será de 61, é 00111101 |
^ | Se presente em um dos operando, mas não existem simultaneamente em dois operandos, operador XOR binário uma cópia para o resultado. | (A ^ b) será de 49, é 00110001 |
~ | Twos operador de complemento é um operador unário, um "flip" efeito de posição. | (~ A) será -61, 1100 0011,2 será complementar da forma de número binário com sinal. |
<< | Binário operador de deslocamento esquerdo. O valor do operando esquerdo para mover para a esquerda e operando à direita o número especificado de dígitos. | um << 2 será de 240, que é 11110000 |
>> | Binário operador de deslocamento para a direita. O valor do operando esquerdo mover operando à direita o número especificado de bits para a direita. | um >> 2 será 15, isto é, 0000 1111 |
A tabela a seguir lista o rubi apoiar os operadores lógicos.
Suponha que a variável de um valor de 10, o valor b variável de 20, então:
运算符 | 描述 | 实例 |
---|---|---|
and | 称为逻辑与运算符。如果两个操作数都为真,则条件为真。 | (a and b) 为真。 |
or | 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 | (a or b) 为真。 |
&& | 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 | (a && b) 为真。 |
|| | 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 | (a || b) 为真。 |
! | 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 | !(a && b) 为假。 |
not | 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 | not(a && b) 为假。 |
Há mais de uma ação é chamado de operador ternário. O primeiro valor de verdade de computação da expressão, e então decidiu implementar dois atrás em uma declaração com base no resultado. operador condicional tem a seguinte sintaxe:
运算符 | 描述 | 实例 |
---|---|---|
? : | 条件表达式 | 如果条件为真 ? 则值为 X : 否则值为 Y |
Em Ruby, a sequência é usada para criar uma série de valor intervalo consecutivo - contém começar valor, o valor final (sujeito a disponibilidade) e os valores entre eles.
Em Ruby, estas sequências é o uso de "pt" e "pt." operadores de intervalo para criar. Intervalo contém duas formas criar valores iniciais e finais, o intervalo de três para criar um formulário que contém apenas o valor final valor inicial não está incluída.
运算符 | 描述 | 实例 |
---|---|---|
pt | 创建一个从开始点到结束点的范围(包含结束点) | 1pt10 创建从 1 到 10 的范围 |
pt. | 创建一个从开始点到结束点的范围(不包含结束点) | 1pt.10 创建从 1 到 9 的范围 |
definido? é um operador especial, quer sob a forma de uma chamada de método para passar julgamento expressão é definido. Ele retorna a descrição expressão de cadeia, se a expressão é retornos indefinidosnulo.
A seguir estão os vários operadores definidos uso ?:
definido? variável # Se a variável foi inicializada É verdade,
Por exemplo:
foo = 42 definido? foo # => "local-variável" definido? $ _ # => "global-variável" definido? bar # => nil (undefined)
definido? method_call # Se o método foi definido, True
Por exemplo:
definido? coloca # "método" => puts definidos? (bar) # => nil (undefined aqui bar) definido? descompactar # => nil (undefined aqui)
# Se o método pode ser invocado como super usuário existe, então Verdadeiro definido? Super
Por exemplo:
definido? Super # => "super" (se pode ser chamado) definido? Super # => nil (se não ser chamado)
definido? render # Se o bloco de código passado verdadeiro,
Por exemplo:
definido? rendimento # => "yield" (se o bloco de transferência) definido? render # => nil (se não passar bloco)
Você pode adicionar o nome do módulo e sublinhado para chamar um método do módulo antes do nome do método. Você pode usar o nome do módulo e dois dois pontos para fazer referência a uma constante.
:: É um operador unário, permitindo constantes, métodos de instância e métodos de classe definidas dentro da classe ou módulo que pode ser acessado em qualquer lugar na classe ou módulo do lado de fora.
Recorde: Em Ruby, classes e métodos também podem ser utilizados como uma constante.
Você só precisa adicionar antes do nome da expressão:: prefixo constante, para retornar à classe ou módulo de objeto apropriado.
Se a expressão prefixo não é usado, a master class de objetos padrão.
Aqui estão dois exemplos:
MR_COUNT = 0 # classe Object definidos nos principais constantes módulo Foo MR_COUNT = 0 :: MR_COUNT = 1 # para definir a uma contagem global MR_COUNT = 2 # definir a contagem local dos dois final coloca MR_COUNT # Esta é uma constante global coloca Foo :: MR_COUNT # O que é "foo" constantes locais
Segunda instância:
CONST = "lá fora" classe Inside_one CONST = proc { 'lá'} def where_is_my_CONST :: CONST + 'dentro de um' final final classe Inside_two CONST = 'dentro de dois' def where_is_my_CONST CONST final final coloca Inside_one.new.where_is_my_CONST coloca Inside_two.new.where_is_my_CONST coloca Objeto :: CONST + Inside_two :: CONST coloca Inside_two :: CONST + CONST coloca Inside_one :: CONST coloca Inside_one :: CONST.call + Inside_two :: CONST
A tabela a seguir com base no operador prioridade lista todos os operadores.
方法 | 运算符 | 描述 |
---|---|---|
是 | :: | 常量解析运算符 |
是 | [ ] [ ]= | 元素引用、元素集合 |
是 | ** | 指数 |
是 | ! ~ + - | 非、补、一元加、一元减(最后两个的方法名为 +@ 和 -@) |
是 | * / % | 乘法、除法、求模 |
是 | + - | 加法和减法 |
是 | >> << | 位右移、位左移 |
是 | & | 位与 |
是 | ^ | | 位异或、位或 |
是 | <= < > >= | 比较运算符 |
是 | <=> == === != =~ !~ | 相等和模式匹配运算符(!= 和 !~ 不能被定义为方法) |
&& | 逻辑与 | |
|| | 逻辑或 | |
pt pt. | 范围(包含、不包含) | |
? : | 三元 if-then-else | |
= %= { /= -= += |= &= >>= <<= *= &&= ||= **= | 赋值 | |
defined? | 检查指定符号是否已定义 | |
not | 逻辑否定 | |
or and | 逻辑组成 |
Nota: A colunaéidentificado como o método de operador é, na verdade, um método, que pode ser sobrecarregado.