Ruby语言基础知识

这篇具有很好参考价值的文章主要介绍了Ruby语言基础知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Ruby是一种简单快捷的面向对象脚本语言,由日本人松本行弘(Yukihiro Matsumoto)在20世纪90年代开发,遵守GPL协议和Ruby License。它的灵感和特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。
以下是Ruby语言的一些特点:
面向对象:在Ruby中,一切皆是对象。这意味着所有的数据和代码都被视为对象,每个对象都有自己的属性和方法。
动态类型:Ruby是一种动态类型语言,这意味着你不需要在声明变量时指定其类型。Ruby会根据需要在运行时自动确定变量的类型。
灵活性和动态性:Ruby是一种解释型脚本语言,具有强大的字符串处理能力和正则表达式。它还具有动态载入功能,可以在运行时重新定义自己,类也可以在运行时继承或取消继承。
自动内存管理:Ruby具有自动内存管理机制,这意味着开发人员不需要手动分配或释放内存。
开源:Ruby是开源的,有大量的活跃社区支持Ruby语言。这意味着有大量的资源和工具可供开发人员使用,并且有许多人可以为开发人员提供帮助和支持。
多精度整数:Ruby支持多精度整数,这意味着它可以处理任意大小的整数。
简洁和优雅的语法:Ruby的语法简单、清晰且易于阅读。它使用英语单词和简洁的符号来表示代码,使开发人员能够轻松地编写和理解代码。

首先需要直接在https://rubyinstaller.org/downloads/下载Ruby安装器安装到本地电脑即可。
安装完成后自动弹出以下内容,输入3即可。
Ruby语言基础知识,Ruby,ruby,开发语言

安装完成后在命令行中直接输入irb,启动irb之后便可以直接运行Ruby代码。

1、Ruby语法生存包

1.1 Ruby的基本运算
# 加法
sum = 5 + 3  # 结果是8

# 减法
difference = 5 - 3  # 结果是2

# 乘法
product = 5 * 3  # 结果是15

# 除法
quotient = 5 / 3  # 结果是1,因为这是整数除法

# 取余
remainder = 5 % 3  # 结果是2,因为5除以3的余数

# 整数赋值
num = 10

# 字符串赋值
str = "Hello, World!"

# 数组赋值
arr = [1, 2, 3, 4, 5]

# 哈希赋值
hash = {"key1" => "value1", "key2" => "value2"}

# 等于
puts a == b  # 输出 false

# 不等于
puts a != b  # 输出 true

# 大于
puts a > b  # 输出 false

# 小于
puts a < b  # 输出 true

# 大于或等于
puts a >= b  # 输出 false

# 小于或等于
puts a <= b  # 输出 true

# 数字转字符串
num = 10
str = num.to_s  # "10"

# 字符串转整数
str = "10"
num = str.to_i  # 10

# 字符串转浮点数
str = "10.5"
num = str.to_f  # 10.5

# 如果字符串不能被解析为一个有效的数字,to_i和to_f方法将返回0:
str = "hello"
num = str.to_i  # 0
num = str.to_f  # 0.0

str = "hello"
num = Integer(str)  # 抛出 ArgumentError
num = Float(str)  # 抛出 ArgumentError
1.2 Ruby的基本I/O方法和流控制
# 输出
puts "Hello, World!"  # 在字符串后添加换行符
print "Hello, World!"  # 不添加换行符

# 输入
input = gets.chomp  # 读取一行输入并去掉末尾的换行符

# if语句
if a > b
  puts "a is greater than b"
elsif a < b
  puts "a is less than b"
else
  puts "a is equal to b"
end

# unless语句(除非)
unless a > b
  puts "a is not greater than b"
end

# while循环
while a < b
  puts "a is less than b"
  a += 1
end

# until循环(直到)
until a >= b
  puts "a is less than b"
  a += 1
end

# for循环
for i in 1..5
  puts i
end

# each循环
(1..5).each do |i|
  puts i
end
1.3 Ruby的特殊对象和注释
# nil
a = nil

# true
b = true

# false
c = false

# 这是一个单行注释

=begin
这是一个
多行注释
=end

2、多种多样的Ruby标识符

在Ruby中,标识符是用于标识变量、常量、方法、类和模块的名称。以下是Ruby中的一些标识符规则:

  1. 局部变量:局部变量名以小写字母或下划线开头。例如,my_var、_var。

  2. 常量:常量名以大写字母开头。例如,MyConstant。

  3. 全局变量:全局变量名以美元符号( )开头。例如, )开头。例如, )开头。例如,global_var。

  4. 实例变量:实例变量为独立的对象存储信息,名以@开头。例如,@instance_var。

  5. 类变量:类变量名以@@开头。例如,@@class_var。

  6. 方法:方法名可以以小写字母或下划线开头,也可以以问号(?)、感叹号(!)或等号(=)结尾。例如,my_method、method?、method!、method=。

  7. 类和模块:类名和模块名以大写字母开头,使用驼峰式命名法。例如,MyClass、MyModule。

请注意,Ruby是大小写敏感的,这意味着myVar和myvar是两个不同的标识符。

3、方法调用、消息和Ruby对象

Ruby把所有的数据结构和值都看做对象,从整数和字符串这样简单的标量(原子的)值,到数组这样的复杂的数据结构一概如此。每个对象都能响应一组特定的消息,对象能够接收的每个消息直接对应一个方法——有名称的、可以被有执行能力的对象触发的可执行例程。
对象也可以用字面量构造器表示,如字符串用双引号,或者已绑定值的变量。消息通过特殊的点运算符.送达: 点右边的消息被发送到点左边的对象上。例如:

x = "100".to_i

方法可以带有参数,这个参数同时也是对象。(虽然有些用于创建和操作对象的语法结构本身不是对象,但是Ruby中几乎所有一切都是对象)下面是一个带有参数的方法调用:

 x = "100".to_i(9)

这是生成一个九进制的100所得到的十进制整数,相当于81.
至于Ruby对象相当于高级语言中的类。

4、编写一个简单程序

创建一个c2f.rb文件如下

celsius = 100
fahrenheit = (celsius * 9 / 5) + 32
puts "The result is: "
puts fahrenheit
puts "."

使用如下命令进行编译运行
命令行中的-cw标志是两个标志的简写,-c可以检查语法错误,-w可以激活高级别的警告。
去掉标志便可以直接运行了

PS E:\Ruby> ruby -cw c2f.rb
Syntax OK
PS E:\Ruby> ruby c2f.rb
The result is:
212
.

5、键盘和文件I/O

5.1 键盘输入

修改c2f.rb代码使其可以获取输入,如下:

print "Hello. Please enter a Celsius value: "
celsius = gets
fahrenheit = (celsius.to_i * 9 / 5) + 32
puts "The result is: "
puts fahrenheit
puts "."

下面是运行这段代码的结果:

PS E:\Ruby> ruby c2f.rb
Hello. Please enter a Celsius value: 100
The result is:
212
.
PS E:\Ruby> ruby c2f.rb
Hello. Please enter a Celsius value: 23
The result is:
73
.
5.2 读取文件

新建一个temp.dat,同时使其只包含一个数字100。
同时修改r2f.rb

celsius = File.read("temp.dat")
fahrenheit = (celsius.to_i * 9 / 5) + 32
puts "The result is: "
puts fahrenheit
puts "."

运行结果为

PS E:\Ruby> ruby c2f.rb
The result is:
212
.
5.3 写入文件
celsius = gets
fahrenheit = (celsius.to_i * 9 / 5) + 32
fh = File.new("temp.out", "w")
fh.puts fahrenheit
fh.close

运行这段代码,无论输入什么,都可以在temp.out中看到转换好的华氏温度。文章来源地址https://www.toymoban.com/news/detail-724972.html

到了这里,关于Ruby语言基础知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • web开发基础笔录(2)-Ruby疑难点(1)

    目录 关于 Ruby rbenv rbenv是类Unix系统上Ruby编程语言的版本管理工具 使用程序包管理器 安装ruby 安装gems 卸载Ruby版本 设置path 安装rails 集成字符串 注释与变量内插 字典HASH 数组 times迭代 想知道 Ruby 为什么会如此受欢迎吗?在粉丝眼中,Ruby 是一门优美而巧妙的语言,他们还认为

    2024年02月12日
    浏览(34)
  • ruby web 实战(3)-Ruby基础(1)

    目录 关于 Ruby rbenv rbenv是类Unix系统上Ruby编程语言的版本管理工具 使用程序包管理器 安装ruby 安装gems 卸载Ruby版本 设置path 安装rails 集成字符串 注释与变量内插 字典HASH 数组 times迭代 想知道 Ruby 为什么会如此受欢迎吗?在粉丝眼中,Ruby 是一门优美而巧妙的语言,他们还认为

    2024年02月13日
    浏览(33)
  • [ruby on rails] ruby使用vscode做开发

    ruby插件推荐用这个来实现,但是现在这个在加载文件索引时候,特别慢,时好时坏,所以现在推荐用Solargraph实现 ruby LSP要求ruby版本3以上,如果在旧版本中使用,需要指定bundleGemfile路径 旧版本ruby使用ruby LSP教程 setting中配置 安装ruby插件 0.27.0,高版本的在vscode新版本中启动

    2024年04月15日
    浏览(71)
  • 【HarmonyOS北向开发】-04 ArkTS开发语言-ArkTS基础知识

     飞书原文档:Docs

    2024年02月11日
    浏览(53)
  • Ruby语言入门书籍推荐(10本)

    1.《Ruby基础教程(第4版)》 《Ruby基础教程(第4版)》是一本非常适合初学者入门的Ruby语言书籍,作者Matz和 Keiju Ishitsuka。本书由浅入深地介绍了Ruby的基础语法和常用库,包括字符串、数组、哈希表等,同时也覆盖了函数、类和模块等高级概念。读者可以轻松地掌握Ruby的基本语法

    2024年02月11日
    浏览(47)
  • ruby语言怎么写个通用爬虫程序?

    Ruby语言爬虫是指使用Ruby编写的网络爬虫程序,用于自动化地从互联网上获取数据。其中,CRawler是一个基于文本的小型地牢爬虫,它被设计为可扩展,所有游戏数据均通过JSON文件提供,程序仅处理游戏引擎。除此之外,还有其他令人敬畏的网络爬虫,蜘蛛和各种语言的资源,

    2024年02月06日
    浏览(47)
  • Ruby 备忘清单_开发速查表分享

    IT宝库整理的Ruby开发速查备忘清单,为开发人员分享快速参考备忘单。 Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言

    2023年04月09日
    浏览(55)
  • RubyMine for Mac/win:提升Ruby和Rails开发的强大IDE

    随着Ruby和Rails在Web开发领域的广泛应用,一款高效的开发工具对于提高生产力至关重要。JetBrains RubyMine正是这样一款值得信赖的集成开发环境(IDE)。作为Mac和Windows平台上的强大工具,RubyMine为开发者提供了卓越的代码编辑、实时分析和调试功能。 RubyMine的智能代码编辑器可

    2024年01月18日
    浏览(43)
  • 对#多种编程语言 性能的研究和思考 go/c++/rust java js ruby python

    打算学习一下rust 借着这个契机 简单的写了计算圆周率代码的各种语言的版本 比较了一下性能 只比拼单线程简单计算能力 计算十亿次循环 不考虑多线程 go/c++/rust java js ruby python 耗时秒数 1:1:1:22:3:250:450 注:能启用则启用编译优化 其中java 使用8、17两个版本测试时间分别是

    2024年01月25日
    浏览(48)
  • 【STM32】基础知识 第五课 C 语言基础知识

    stdint.h 是从 C99 中引进的一个标准 C 库的文件. 路径: “D:MDK5.34ARMARMCCinclude” 运算符 含义 运算符 含义 按位与 ~ 按位取反 | 按位或 左移 ^ 按位异或 右移 按位与: num1 运算符 num2 结果 0 0 0 1 0 0 0 1 0 1 1 1 按位或: num1 运算符 num2 结果 0 | 0 0 1 | 0 1 0 | 1 1 1 | 1 1 按位异或: num1 运算符

    2024年02月13日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包