» Ruby快速入门 » 1. 基础篇 » 1.3 运算符

运算符

在Ruby中,有9种主要运算符:

  • 算术运算符
  • 比较运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 三元运算符
  • 区间运算符
  • 成员运算符
  • 定义运算符

算术运算符

算术运算符用于对数值进行数学运算。

# 加法
result_addition = 5 + 3.0
puts result_addition  # => 8.0

# 减法
result_subtraction = 7 - 2
puts result_subtraction  # => 5

# 乘法
result_multiplication = 4 * 6.0
puts result_multiplication  # => 24.0

# 除法
result_division = 15 / 3
puts result_division  # => 5

# 取模(除法余数)
result_modulus = 17 % 5
puts result_modulus  # => 2

# 指数
result_exponentiation = 2**3
puts result_exponentiation  # => 8

比较运算符

Ruby中的比较运算符用于比较值并返回布尔结果。

# 等于
puts 5 == 5   # true

# 不等于
puts 5 != 3   # true

# 小于
puts 3 < 5    # true

# 大于
puts 5 > 3    # true

# 小于或等于
puts 3 <= 5   # true

# 大于或等于
puts 5 >= 3   # true

赋值运算符

Ruby中的赋值运算符用于给变量赋值。

# 赋值
x = 5
puts x  # => 5

# 加并赋值
x += 3
puts x  # => 8

# 减并赋值
x -= 2
puts x  # => 6

# 乘并赋值
x *= 4
puts x  # => 24

# 除并赋值
x /= 3
puts x  # => 8

逻辑运算符

逻辑运算符用于在布尔值之间执行逻辑操作。

# 逻辑与
result_and = true && false
puts result_and  # => false

# 逻辑或
result_or = true || false
puts result_or  # => true

# 逻辑非
result_not = !true
puts result_not  # => false

位运算符

Ruby中的位运算符用于操作整型数值中的各个位。

# 位与
result_and = 5 & 3
puts result_and  # => 1

# 位或
result_or = 5 | 3
puts result_or  # => 7

# 位异或
result_xor = 5 ^ 3
puts result_xor  # => 6

# 位非(补码)
result_not = ~5
puts result_not  # => -6

# 左移
result_left_shift = 5 << 2
puts result_left_shift  # => 20

# 右移
result_right_shift = 5 >> 1
puts result_right_shift  # => 2

三元运算符

Ruby中的三元运算符是简单条件表达式的简洁表现方式。基本语法与C语言相似:

condition ? expression_if_true : expression_if_false

以下是一个例子:

age = 20
result = (age >= 18) ? "Adult" : "Minor"
puts result  # => "Adult"

区间运算符

在Ruby中,区间运算符用于创建数值范围。有两种类型的区间运算符:包含区间 (..) 和非包含区间 (...)。

inclusive_range = 1..5

# 将区间转换为数组
puts inclusive_range.to_a.inspect  # => [1, 2, 3, 4, 5]


exclusive_range = 1...5

# 将区间转换为数组
puts exclusive_range.to_a.inspect  # => [1, 2, 3, 4]

成员运算符

成员运算符用于检查元素是否属于集合。

in?

in? 运算符检查元素是否存在于集合中:

fruits = ["apple", "banana", "orange"]

puts "banana".in?(fruits)  # true
puts "grape".in?(fruits)   # false

!in?

!in? 运算符检查元素是否不存在于集合中:

fruits = ["apple", "banana", "orange"]

puts "banana".!in?(fruits)  # false
puts "grape".!in?(fruits)   # true

定义运算符

defined? 运算符用于检查给定变量、方法或块是否已定义。如果定义了,它将返回描述实体类型的字符串,否则返回 nil

x = 58

if defined?(x)
  puts "Variable x is defined."
else
  puts "Variable x is not defined."
end

代码挑战

编写一个 Ruby 函数,接受一个整数作为输入,并返回其二进制表示中设置位数(1的个数)。使用位运算符实现此函数。

Loading...
> 此处输出代码运行结果
上页
下页