Ruby 学习笔记
基本语法
变量
name = "Alice"
age = 30
puts "Name: #{name}, Age: #{age}"
var # 局部变量
@var # 实例变量
$var # 全局变量
数据类型
Ruby 支持多种数据类型,包括字符串、数字、数组、哈希等。
# 字符串
str = "Hello, Ruby!"
# 数字
num = 42
# 数组
arr = [1, 2, 3, 4, 5]
# 哈希
hash = {name: "Alice", age: 30}
条件语句
age = 18
if age < 18
puts "You are a minor."
elsif age >= 18 && age < 65
puts "You are an adult."
else
puts "You are a senior."
end
循环
# while 循环
i = 0
while i < 5
puts "i is #{i}"
i += 1
end
# each 循环
arr = [1, 2, 3, 4, 5]
arr.each do |num|
puts num
end
方法
def greet(name)
return "Hello, #{name}!"
end
puts greet("Alice")
类和对象
class Person
attr_accessor :name, :age
def initialize(name, age)
@name = name
@age = age
end
def introduce
"Hello, my name is #{@name} and I am #{@age} years old."
end
end
person = Person.new("Alice", 30)
puts person.introduce
安装
macOS:
brew install ruby
Ubuntu:
sudo apt install ruby
运行
将你的 Ruby 代码保存到一个 .rb 文件中,例如 hello.rb。然后在终端中运行:
ruby hello.rb
包管理器 Gem
Gem 是 Ruby 编程语言的包管理工具,类似于 Python 的 pip 或者 JavaScript 的 npm。
基本命令
gem install <gem_name> # 安装 Gem 包
gem list # 列出已安装的 Gem 包
gem search <gem_name> # 搜索 Gem 包
gem update <gem_name> # 更新 Gem 包
gem uninstall <gem_name> # 卸载 Gem 包
gem info <gem_name> # 查看 Gem 包信息
查看 Gem 包文档:
gem server
运行此命令后,打开浏览器并访问 http://localhost:8808,可以查看本地已安装 Gem 包的文档。
Bundler
在实际项目中,我们通常使用 Bundler 来管理 Gem 依赖项。Bundler 使用 Gemfile 文件来定义项目所需的 Gem 以及它们的版本。
安装 Bundler:
gem install bundler
在项目根目录下创建一个名为 Gemfile 的文件,内容如下:
source 'https://rubygems.org'
gem 'rails', '~> 6.1.0'
gem 'pg', '>= 0.18', '< 2.0'
安装 Gemfile 中指定的 Gem:
bundle install
更新 Gemfile 中指定的 Gem:
bundle update
版本管理器
Ruby 的主流版本管理器有 RVM 和 rbenv。我还没有遇到需要使用版本管理器的情况,因此这里留空。
Ruby 学习笔记的更多相关文章
- Ruby学习笔记4: 动态web app的建立
Ruby学习笔记4: 动态web app的建立 We will first build the Categories page. This page contains topics like Art, ...
- ruby学习笔记(1)-puts,p,print的区别
ruby学习笔记-puts,p,print的区别 共同点:都是用来屏幕输出的. 不同点:puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号):另外如果内容参数中有转义符,输出时将 ...
- ruby 学习笔记 1
写ruby blog 系统的记录下.也是对我学ruby的点滴记录. 先介绍下我的学习环境.系统:ubuntu12.04文档:techotopia ,ruby文档,the hard way learn ...
- ruby学习笔记(2)-chomp,chop的区别
还没开始系统性的学习Ruby,最近在看metasploit框架的exploit会涉及到Ruby脚本,也就硬着头皮一遍查阅资料一遍做些笔记吧. Ruby字符串中存在chop和chomp的内置函数.我在h ...
- Ruby学习笔记0708
#!/usr/bin/env ruby class MegaGreeter attr_accessor :names # 初始化這個物件 def initialize(names = "Wo ...
- ruby 学习笔记 2 -变量
变量 在ruby的世界里,变量有5种,全局变量 局部变量 实例变量 常量 类变量以及伪变量 常用的: 全局: 在全局使用,使用$开头,因为是全局的,所以在任何的代码例子中都可以改变其值,造成混乱,所以 ...
- Ruby学习笔记
#!/usr/bin/ruby puts "Hello, Ruby, what is your name?" $name = STDIN.gets puts "Hi, I ...
- Ruby学习笔记(二)
1.block 代码块 do...end 或 {} 构成一个代码块,就像常见的 .each后面跟的代码块. my_nums = [1,2,3] my_double_nums = my_nums.col ...
- Ruby学习笔记之升级ruby的版本
升级ruby版本,有时候安装ruby的版本过低,需要进行升级,例如安装在centos6.7安装fpm需要ruby版本在1.9以上. 0x00 主机环境如下 [root@test ~]# cat /et ...
- Ruby学习笔记7: 添加身份验证(adding Authentication)
我们已经完成了Category & Product页面内容的增删改查,再加入一个身份验证即可成为一个较完整的Rails App了.本文就来完成这个任务. We now need to give ...
随机推荐
- 七牛云 + PicGo
下载PicGo https://github.com/Molunerfinn/PicGo/releases/tag/v2.3.1 七牛云配置 1.AccessKey和SecretKey:可以在七牛云控 ...
- RK3568J“麒麟”+“翼辉”国产系统正式发布,“鸿蒙”也正在路上!
RK3568J "麒麟" + "翼辉"国产系统正式发布 近期,创龙科技RK3568J全国产平台(国产化率100%,提供报告)已正式适配两大国产系统:银河麒麟嵌入 ...
- Linux的访问权限详解
题目 解读访问权限 rw-r--r--分别代表什么东西 r:代表可读 w:可写 e:可执行 方便起见进行拆分 rw- 代表文件所属用户的权限 r-- 代表同组用户的权限 r-- 代表其他用户的权限 同 ...
- windows中运行nicegui官网内容
内容受到bilibili视频nicegui官网访问不了?教你本地部署文档,我写python终于有界面启发,其余部分由chatgpt协助生成. 1. 在本地新建目录如 nicegui_web 2. 从g ...
- Solo 开发者周刊 (第8期):Claude公司再度上新产品,成交额将超73亿美元
这里会整合 Solo 社区每周推广内容.产品模块或活动投稿,每周五发布.在这期周刊中,我们将深入探讨开源软件产品的开发旅程,分享来自一线独立开发者的经验和见解.本杂志开源,欢迎投稿. 好文推荐 Cla ...
- Profinet转Modbus模块减轻通讯编程工作量实现Modbus通讯
巴图自动化PN转Modbus模块(BT-MDPN10)能够实现Profinet协议与Modbus协议之间的转换,使得Profinet协议设备与Modbus协议设备进行连接并能够相互通信. 通过使用巴图 ...
- [oeasy]python0093_电子游戏起源_视频游戏_达特茅斯_Basic_家酿俱乐部
编码进化 回忆上次内容 Ed Robert 的 创业之路 从 售卖 diy 组装配件 到进军 计算器市场 最后 发布 牛郎星8800 intel 8080 的出现 让 人人都有 自己的 个人电脑 Bi ...
- oeasy教您玩转vim - 4 - # 深入帮助
深入帮助 回忆上节课内容 上次制作了 oeasy.txt 用 vim oeasy.txt 打开了文件 :f[ile] 查询了当前文件 的信息 从 正常模式或命令模式(Normal mode) 切换到 ...
- JavaWeb编写登录注册案例并把数据插入MySQL数据库中
小白学习了这么久的java,第一次上手编写一个完整的登录以及注册案例,麻雀虽小五脏俱全!!!! 案例: 登录和注册 第一:所需创建的包以及相关类 1,domain包(也就是平时所说的Javabean) ...
- CF30D King's Problem? 题解
CF30D 题意 有 \(n+1\) 个点,其中的 \(n\) 个点在数轴上.求以点 \(k\) 为起点走过所有点的最短距离,允许重复. 思路 有两种情况: \(k\) 在数轴上(如图1). \(k\ ...