运算符
在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...
> 此处输出代码运行结果