基本语法

变量

  1. name = "Alice"
  2. age = 30
  3. puts "Name: #{name}, Age: #{age}"
  1. var # 局部变量
  2. @var # 实例变量
  3. $var # 全局变量

数据类型

Ruby 支持多种数据类型,包括字符串、数字、数组、哈希等。

  1. # 字符串
  2. str = "Hello, Ruby!"
  3. # 数字
  4. num = 42
  5. # 数组
  6. arr = [1, 2, 3, 4, 5]
  7. # 哈希
  8. hash = {name: "Alice", age: 30}

条件语句

  1. age = 18
  2. if age < 18
  3. puts "You are a minor."
  4. elsif age >= 18 && age < 65
  5. puts "You are an adult."
  6. else
  7. puts "You are a senior."
  8. end

循环

  1. # while 循环
  2. i = 0
  3. while i < 5
  4. puts "i is #{i}"
  5. i += 1
  6. end
  7. # each 循环
  8. arr = [1, 2, 3, 4, 5]
  9. arr.each do |num|
  10. puts num
  11. end

方法

  1. def greet(name)
  2. return "Hello, #{name}!"
  3. end
  4. puts greet("Alice")

类和对象

  1. class Person
  2. attr_accessor :name, :age
  3. def initialize(name, age)
  4. @name = name
  5. @age = age
  6. end
  7. def introduce
  8. "Hello, my name is #{@name} and I am #{@age} years old."
  9. end
  10. end
  11. person = Person.new("Alice", 30)
  12. puts person.introduce

安装

macOS:

  1. brew install ruby

Ubuntu:

  1. sudo apt install ruby

运行

将你的 Ruby 代码保存到一个 .rb 文件中,例如 hello.rb。然后在终端中运行:

  1. ruby hello.rb

包管理器 Gem

Gem 是 Ruby 编程语言的包管理工具,类似于 Python 的 pip 或者 JavaScript 的 npm。

基本命令

  1. gem install <gem_name> # 安装 Gem 包
  2. gem list # 列出已安装的 Gem 包
  3. gem search <gem_name> # 搜索 Gem 包
  4. gem update <gem_name> # 更新 Gem 包
  5. gem uninstall <gem_name> # 卸载 Gem 包
  6. gem info <gem_name> # 查看 Gem 包信息

查看 Gem 包文档:

  1. gem server

运行此命令后,打开浏览器并访问 http://localhost:8808,可以查看本地已安装 Gem 包的文档。

Bundler

在实际项目中,我们通常使用 Bundler 来管理 Gem 依赖项。Bundler 使用 Gemfile 文件来定义项目所需的 Gem 以及它们的版本。

安装 Bundler:

  1. gem install bundler

在项目根目录下创建一个名为 Gemfile 的文件,内容如下:

  1. source 'https://rubygems.org'
  2. gem 'rails', '~> 6.1.0'
  3. gem 'pg', '>= 0.18', '< 2.0'

安装 Gemfile 中指定的 Gem:

  1. bundle install

更新 Gemfile 中指定的 Gem:

  1. bundle update

版本管理器

Ruby 的主流版本管理器有 RVM 和 rbenv。我还没有遇到需要使用版本管理器的情况,因此这里留空。

Ruby 学习笔记的更多相关文章

  1. Ruby学习笔记4: 动态web app的建立

    Ruby学习笔记4: 动态web app的建立 We will first build the Categories page. This page contains topics like Art, ...

  2. ruby学习笔记(1)-puts,p,print的区别

    ruby学习笔记-puts,p,print的区别 共同点:都是用来屏幕输出的. 不同点:puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号):另外如果内容参数中有转义符,输出时将 ...

  3. ruby 学习笔记 1

    写ruby blog  系统的记录下.也是对我学ruby的点滴记录. 先介绍下我的学习环境.系统:ubuntu12.04文档:techotopia ,ruby文档,the hard way learn ...

  4. ruby学习笔记(2)-chomp,chop的区别

    还没开始系统性的学习Ruby,最近在看metasploit框架的exploit会涉及到Ruby脚本,也就硬着头皮一遍查阅资料一遍做些笔记吧. Ruby字符串中存在chop和chomp的内置函数.我在h ...

  5. Ruby学习笔记0708

    #!/usr/bin/env ruby class MegaGreeter attr_accessor :names # 初始化這個物件 def initialize(names = "Wo ...

  6. ruby 学习笔记 2 -变量

    变量 在ruby的世界里,变量有5种,全局变量 局部变量 实例变量 常量 类变量以及伪变量 常用的: 全局: 在全局使用,使用$开头,因为是全局的,所以在任何的代码例子中都可以改变其值,造成混乱,所以 ...

  7. Ruby学习笔记

    #!/usr/bin/ruby puts "Hello, Ruby, what is your name?" $name = STDIN.gets puts "Hi, I ...

  8. Ruby学习笔记(二)

    1.block 代码块 do...end 或 {} 构成一个代码块,就像常见的 .each后面跟的代码块. my_nums = [1,2,3] my_double_nums = my_nums.col ...

  9. Ruby学习笔记之升级ruby的版本

    升级ruby版本,有时候安装ruby的版本过低,需要进行升级,例如安装在centos6.7安装fpm需要ruby版本在1.9以上. 0x00 主机环境如下 [root@test ~]# cat /et ...

  10. Ruby学习笔记7: 添加身份验证(adding Authentication)

    我们已经完成了Category & Product页面内容的增删改查,再加入一个身份验证即可成为一个较完整的Rails App了.本文就来完成这个任务. We now need to give ...

随机推荐

  1. Python性能测试框架:Locust实战教程

    01认识Locust Locust是一个比较容易上手的分布式用户负载测试工具.它旨在对网站(或其他系统)进行负载测试,并确定系统可以处理多少个并发用户,Locust 在英文中是 蝗虫 的意思:作者的想 ...

  2. 基于 tc 指令的网速限制工具

    前言 最近有一个需求,需要限制网卡速度进行一些测试.在朋友推荐下阅读了这篇文章 TC简单粗暴限制网速. 经过尝试,简单有效,整理成脚本放在正文,留作参考. 正文 指令解析(chatgpt 分析) 您提 ...

  3. SpringBoot实现Mysql读写分离

    前言 在高并发的场景中,关于数据库都有哪些优化的手段? 常用的有以下的实现方法:读写分离.加缓存.主从架构集群.分库分表等,在互联网应用中,大部分都是读多写少的场景,设置两个库,主库和读库. 主库的职 ...

  4. Java接口如何动态返回指定的对象字段属性

    经常遇到的问题 在实际得开发过程中,我们经常会遇到以下场景,我们后端请求某个接口后获取到得数据,不希望将所有字段都返回给前端,那么我们需要封装,或者过滤一些不必要得字段后返回给前端. 不完美的解决方案 ...

  5. VMware vCenter Server 7.0U3r 下载 - 修复堆溢出 (远程执行代码) 和本地权限提升漏洞

    VMware vCenter Server 是一款高级服务器管理软件,提供了一个集中式平台来控制 vSphere 环境,以实现跨混合云的可见性. 简化且高效的服务器管理 什么是 vCenter Ser ...

  6. 洛谷P1832

    #include<iostream> #include<utility> using namespace std; typedef long long ll; #define ...

  7. tp5 为什么使用单例模式

    首先我们要知道明确单例模式这个概念,那么什么是单例模式呢?单例模式顾名思义,就是只有一个实例.作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例, 这个类我们 ...

  8. JMeter Sampler-http请求之KeepAlive使用总结

    Sampler-http请求之KeepAlive使用总结 测试环境 apache-jmeter-2.13 KeepAlive使用介绍 说明: 1.Use KeepAlive 勾上,则表示为求连接设置请 ...

  9. 2023/4/19 SCRUM个人博客

    1.我昨天的任务 初步了解了pandas库,对series和dataframe有了初步的学习使用 2.遇到了什么困难 对PYQT5的概念没有定义,准备进行学习 3.我今天的任务 学习了PYQT5的部分 ...

  10. 【H5】15 表单 其四 数据发送

    一旦在客户端上验证了表单数据,就可以提交表单了. 并且,由于我们在上一篇文章中介绍了验证,因此我们准备提交! 本文着眼于用户提交表单时会发生什么-数据将流向何处,以及到达表单后如何处理? 我们还将研究 ...