Ruby Programming | 连载 02 - Ruby 语法基础

1,213 阅读4分钟

我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第1篇文章,点击查看活动详情

一、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 运行上述栗子,输出结构如下:

image.png

=> 指向的是函数的返回值,nil 表示空值,也就是说 print 函数和 puts 函数的返回值为空,p 函数的返回值为该函数的参数。

gets 函数将键盘输入内容作为函数的返回值。

Ruby 是一门面向对象的编程语言,Ruby 中一切皆对象。Ruby 语言中包含的特殊对象如下:

操作栗子 🌰说明
默认对象selfself 关键字引用默认对象。self 是一个依赖于运行时上下文表示不同对象的角色。没有指定调用者的方法,调用的时候会默认被 self 调用
特殊值对象true
false
nil
truefalse 对象通常用于条件判断或者比较的返回值;nil 对象是指 "nonobject" 的一种,表示值或者结果的缺失,falsenil 表示条件表达式失败,所有的 其他对象, 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_ageStudentAge、_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 条件判断等。