Ruby 教程学习笔记
本文将介绍Ruby的基础语法和常用操作,包含以下主题:
- 变量和数据类型
- 运算符
- 条件判断
- 循环控制
- 函数定义与调用
- 类和对象
- 异常处理
变量和数据类型
Ruby中的变量可以是全局变量、实例变量、局部变量和类变量。变量名以字母或下划线开头,后接任意组合的字母、数字和下划线。
基本数据类型
Ruby中基本数据类型有整型、浮点型、字符串型、布尔型和Symbol型。其中Symbol型是Ruby独有的类型,与字符串类型类似但有一些不同之处。
rubyCopy Code# 整型
num1 = 10
num2 = 0b1010 # 二进制表示方法:0b开头
num3 = 0o12 # 八进制表示方法:0o开头
num4 = 0x0A # 十六进制表示方法:0x开头
# 浮点型
float1 = 3.14159
float2 = 1.0e-6 # 科学计数法表示方法
# 字符串型
str1 = "Hello, Ruby!"
str2 = 'Ruby is cool!'
# 布尔型
bool1 = true
bool2 = false
# Symbol型
sym = :ruby # 冒号开头表示Symbol类型,不可被修改
数组和哈希表
Ruby中的数组和哈希表类似于其他编程语言中的列表和字典。数组可以存储一组有序的元素,而哈希表则存储一组key-value键值对。
rubyCopy Code# 数组
arr1 = [1, 2, 3, 4, 5] # 直接定义
arr2 = Array.new(3) { |i| i * 2 } # 使用构造函数初始化
arr3 = Array.new(4, "Ruby") # 创建指定大小相同默认值的数组
# 哈希表
hash1 = { "a" => 1, "b" => 2, "c" => 3 } # 直接定义
hash2 = Hash.new("default_value") # 创建一个有默认值的哈希表
hash2["a"] = 100 # 添加key-value键值对
运算符
Ruby中有基本的算术、比较、逻辑和位运算符,除此之外还有一些特殊的运算符和操作符。
rubyCopy Code# 算术运算符:+ - * / % **
num1 + num2 # 加法
num1 - num2 # 减法
num1 * num2 # 乘法
num1 / num2 # 除法
num1 % num2 # 取模
num1 ** num2 # 幂
# 比较运算符:== != > < >= <= <=>(组合比较符)
num1 == num2 # 相等
num1 != num2 # 不等
num1 > num2 # 大于
num1 < num2 # 小于
num1 >= num2 # 大于等于
num1 <= num2 # 小于等于
num1 <=> num2 # 比较大小,返回1, 0或-1
# 逻辑运算符:&& || !
bool1 && bool2 # 逻辑与
bool1 || bool2 # 逻辑或
!bool1 # 逻辑非
# 位运算符:& | ^ ~ << >>
num1 & num2 # 与
num1 | num2 # 或
num1 ^ num2 # 异或
~num1 # 取反
num1 << num2 # 左移
num1 >> num2 # 右移
# 特殊操作符:.. ... ?: defined?
(1..5) # 包含末尾
(1...5) # 不包含末尾
str = bool ? "true" : "false" # 三元操作符
defined? var # 判断var是否已定义
条件判断
Ruby中的条件判断语句包括if、unless、case等,可以根据不同的条件执行不同的代码块。
rubyCopy Code# if 语句
if age < 18
puts "未成年人,禁止入内!"
elsif age >= 18 && age < 60
puts "成年人,欢迎光临!"
else
puts "老年人,慎入!"
end
# unless 语句
unless score >= 60
puts "不及格!"
else
puts "及格!"
end
# case 语句
case score
when 0..59
puts "不及格!"
when 60..79
puts "良好!"
when 80..100
puts "优秀!"
else
puts "错误的分数输入!"
end
循环控制
Ruby中的循环语句包括while、until、for等,可以根据需要循环执行代码块。
rubyCopy Code# while 循环语句
num = 0
while num < 10 do
puts num
num += 1
end
# until 循环语句
num = 0
until num >= 10 do
puts num
num += 1
end
# for 循环语句
arr = [1, 2, 3, 4, 5]
for i in arr do
puts i
end
# each 迭代器
arr.each { |i| puts i }
函数定义与调用
Ruby中的函数定义使用关键字def,函数调用使用函数名和参数列表。可以使用return关键字返回函数结果。
rubyCopy Code# 带参数的函数定义和调用
def add(a, b)
return a + b
end
result = add(3, 4)
puts result
# 可变参数的函数定义和调用
def func(name, *args)
puts name
args.each { |arg| puts arg }
end
func("Ruby", 1, 2, 3)
# 匿名函数(lambda)定义和调用
sum = lambda { |a, b| return a + b }
result = sum.call(2, 3)
puts result
类和对象
Ruby是一种面向对象的语言,所有的数据都是对象。类定义使用关键字class,可以添加成员变量和成员方法。
rubyCopy Code# 类定义
class Person
def initialize(name, age)
@name = name
@age = age
end
def say_hello
puts "Hello, I am #{@name}"
end
end
# 对象创建和方法调用
p = Person.new("Ruby", 20)
p.say_hello
异常处理
Ruby中的异常处理使用begin-end块,可以使用rescue关键字捕获异常并处理。
rubyCopy Code# 异常处理示例
begin
raise "This is an exception."
rescue => e
puts e.message
puts e.backtrace.inspect
end
以上就是Ruby的基础语法和常用操作的学习笔记,希望能够对你有所帮助!