ruby基础语法
以下是 Ruby 基础语法的简明总结,适合快速入门:
一、变量与常量
-
局部变量
小写字母或下划线开头,作用域为当前代码块。name = "Alice" _age = 20
-
实例变量
以@
开头,属于对象实例。@name = "Bob"
-
类变量
以@@
开头,属于整个类。@@count = 0
-
全局变量
以$
开头,作用域全局。$debug_mode = true
-
常量
全大写字母,约定不可修改(修改会警告)。PI = 3.14159
二、数据类型
-
字符串(String)
单引号(不转义)或双引号(支持转义和插值)。str1 = 'Hello \n World' # 输出换行符 str2 = "Hello #{name}" # 插值:Hello Alice
-
符号(Symbol)
轻量级字符串,以:
开头,常用于哈希键。:user_id
-
数组(Array)
有序集合,通过索引访问。nums = [1, 2, 3] nums[0] # => 1
-
哈希(Hash)
键值对集合,键可以是任意对象。person = { name: "Alice", age: 20 } person[:name] # => "Alice"
-
范围(Range)
表示连续区间,常用于迭代。(1..5).each { |n| puts n } # 1到5 (1...5).each { |n| puts n } # 1到4
三、运算符
-
算术运算符
+
,-
,*
,/
,%
,**
(幂运算)。2 ** 3 # => 8 10 % 3 # => 1
-
比较运算符
==
,!=
,>
,<
,>=
,<=
,<=>
(返回 -1, 0, 1)。5 <=> 3 # => 1(5 > 3)
-
逻辑运算符
&&
,||
,!
(也可用and
,or
,not
,但优先级不同)。true && false # => false
-
赋值运算符
=
,+=
,-=
,*=
,/=
,%=
。x = 5 x += 3 # => 8
四、控制结构
-
条件判断
# if/elsif/else if age >= 18 puts "Adult" elsif age > 0 puts "Child" else puts "Invalid" end # 三元运算符 result = (score > 60) ? "Pass" : "Fail"
-
循环
# while 循环 i = 0 while i < 3 puts i i += 1 end # until 循环 until i >= 3 puts i i += 1 end # for 循环(较少使用) for num in [1, 2, 3] puts num end
-
迭代器
# each 方法 (1..3).each { |n| puts n } # map 方法 doubled = [1, 2, 3].map { |n| n * 2 } # => [2, 4, 6]
五、方法定义
-
基本语法
def greet(name) "Hello, #{name}!" end greet("Ruby") # => "Hello, Ruby!"
-
默认参数
def add(a, b = 1) a + b end add(3) # => 4 add(3, 5) # => 8
-
可变参数
def sum(*nums) nums.sum end sum(1, 2, 3) # => 6
六、异常处理
begin
# 可能出错的代码
result = 10 / 0
rescue ZeroDivisionError => e
puts "Error: #{e.message}"
ensure
puts "Cleanup code here"
end
七、注释
-
单行注释
# 这是一个注释
-
多行注释
=begin 这是一个多行注释 可以写多行内容 =end
八、特殊语法
-
% 符号快捷语法
%w[apple banana cherry] # => ["apple", "banana", "cherry"](字符串数组) %i[red green blue] # => [:red, :green, :blue](符号数组)
-
并行赋值
a, b = 1, 2 # a=1, b=2 a, b = b, a # 交换值:a=2, b=1
九、代码块(Block)
-
使用
{}
或do...end
# 单行用 {} [1, 2, 3].each { |n| puts n } # 多行用 do...end [1, 2, 3].each do |n| puts "Number: #{n}" end
-
自定义接受块的方法
def repeat(times) times.times { yield } # yield 调用块 end repeat(3) { puts "Hello!" } # 输出 3 次 Hello
十、常用方法示例
-
字符串操作
"ruby".upcase # => "RUBY" "HELLO".downcase # => "hello" " test ".strip # => "test"
-
数组操作
[1, 2, 3].include?(2) # => true [1, 2, 3].push(4) # => [1, 2, 3, 4] [1, 2, 3].join("-") # => "1-2-3"
总结
Ruby 语法以简洁灵活著称,核心特点是:
- 无分号,代码块通过缩进或
end
结束。 - 动态类型,无需声明变量类型。
- 一切皆对象,方法调用可链式操作。
建议通过实际编码练习巩固语法,例如尝试编写小型脚本或使用 Ruby Playground 在线工具。
— END —