一、Ruby 基本语法
Ruby 的基本语法中包含了 Ruby 的基本运算符、I/O、控制流以及 Ruby 中的特殊对象和注释。
Ruby 中的基本运算包含了 算术运算
、赋值
、比较
以及 字符串和数值的转换
。
运算符 | 栗子 🌰 | 说明 |
算数运算 | 1+2(加法) 3-2(减法) 2*3(乘法) 2/3(除法) 1.2+3.1(浮点加法) 2-1.0(浮点减法) 1.0*2(浮点乘法) 4.0/2(浮点除法) |
所有的运算都是用整型或者浮点型,混合使用整型和浮点型运算,最终结果为浮点型 |
赋值运算 | x=1 y="coffee" |
赋值操作时将一个对象(等号右边)绑定到一个局部变量(等号左边)上,即把对象看做一个用变量表示的值 |
比较运算 | x==y 2>1 2<3 |
比较是否相等时使用的是两个等号,使用一个等号表示赋值 |
字符串 -> 数值 | "1".to_i "20".to_i |
字符串对象的 to_i 方法可以将字符串形式的数字转换成整型 |
I/O 即输入(Input)和输出(Output),Ruby 中的 I/O 方法如下:
操作 | 栗子 🌰 | 说明 |
打印/输出到控制台 | print "Ruby" puts "Hello" p "World" |
如果字符串结尾没有换行符 puts 函数会自动添加一个,但是 print 函数不会自动添加,p 函数会输出一个字符串格式数据。 |
获取键盘输入 | gets str = gets |
直接将键盘输入赋值给一个变量 |
使用 irb 运行上述栗子,输出结构如下:
=>
指向的是函数的返回值,nil
表示空值,也就是说 print 函数和 puts 函数的返回值为空,p 函数的返回值为该函数的参数。
gets 函数将键盘输入内容作为函数的返回值。
Ruby 是一门面向对象的编程语言,Ruby 中一切皆对象。Ruby 语言中包含的特殊对象如下:
操作 | 栗子 🌰 | 说明 |
默认对象 | self | self 关键字引用默认对象。self 是一个依赖于运行时上下文表示不同对象的角色。没有指定调用者的方法,调用的时候会默认被 self 调用 |
特殊值对象 | true false nil |
true 和 false 对象通常用于条件判断或者比较的返回值;nil 对象是指 "nonobject" 的一种,表示值或者结果的缺失,false 和 nil 表示条件表达式失败,所有的 其他对象, true, 0, 空字符串 等表示条件表达式成功。 |
二、Ruby 标识符
Ruby 中的标识符类型不多,主要包含了 变量, 常量, 关键字, 方法名 等,而变量又包含了局部变量, 全局变量, 实例变量 和 类变量。
变量命名规范
Ruby 中的 局部变量 的命名以 小写字母或者下划线开头
,包含了字母、下划线和数字。name、str、age、first_name、lastName 都是有效的命名方式。但是在组合单词命名的局部变量时,Ruby 通常约定使用下划线来作为命名规范,而不是驼峰命名法;Ruby 中推荐使用 first_name 而不是 firstName。
全局变量以 $
开头,如 $year,$
之后的变量名不使用局部变量的命名规则,也就是说全局变量中可以包含特殊字符,如 $1、$/。
实例变量为独立的 对象
存储信息,通常以一个单独的 @
符号开头,后面使用与局部变量相同的命名规则,不同的是实例变量在 @
符号之后的第一个字符可以大写,但是不同使用数字;通常来说还是 @
之后的第一个字母还是使用小写字母。如 @name、@age
类变量是在每一个类层级上存储信息,要区分于实例变量在对象层级上存储信息;对象是由类实例化而来的。类变量以 @@
开头,使用与局部变量相同的命名规则。如 @@url、@@header
变量类型 | 符合 Ruby 命名规范栗子 🌰 | 不符合 Ruby 命名规范栗子 🌰 |
局部变量 | student_age | StudentAge、_studentAge、__studentAge、age1 |
全局变量 | $JUEJIN_URL | $juejin_url、$juejinUrl、$url2 |
实例变量 | @home_address | @Home_address、@home_address、@address3 |
类变量 | @@home_address | @@Home_address、@@home_address、@@address4 |
常量命名规范
Ruby 中的常量通常以大写字母开头,如 Name、Age 等;Ruby 常量命令规范中,常量名由多个单词组成可以是使用驼峰命名法(FirstName)也可以使用下划线命名,使用下划线必须要下划线分割的所有单词的首字母大写(First_Name)。
方法命名规范
Ruby 中的方法名的命名与局部变量的命名规则一致,但是 Ruby 中的一些方法名中包含了特殊字符,如 ?, ! 和 = ;这些特殊符号代表着一定的含义,这也是 Ruby 语言的一种设计理念。
方法不因为方法本身受到关注,而是简单的作为提供值的表达式融入到程序中。
关键字
Ruby 中的关键字大约有 40 个,通常都是一些简单的单一词汇。常用的关键字有 def 方法定义、class 类定义、if 条件判断等。