当前位置: 首页 > news >正文

Ruby基础语法

Ruby 是一种动态、反射和面向对象的编程语言,它以其简洁的语法和强大的功能而受到许多开发者的喜爱。以下是 Ruby 语言的一些基本语法:

1. 打印输出

puts "Hello, Ruby!"

变量赋值

x = 10
name = "John"

2. 数据类型

Ruby 有多种基本数据类型,包括整数、浮点数、字符串、数组、哈希(Hash)和符号(Symbol)。

number = 42          # 整数
float_number = 3.14   # 浮点数
greeting = "Hello"    # 字符串
names = ["John", "Jane", "Foo"]  # 数组
person = { name: "John", age: 30 }  # 哈希
id = :user_id          # 符号

3. 条件语句

age = 20
if age > 18puts "You are an adult."
elsif age == 18puts "You are an adult."
elseputs "You are a minor."
end

4. 循环

Ruby 中的循环包括 whileuntil 循环。

 

ruby

i = 0
while i < 5puts ii += 1
endi = 0
until i >= 5puts ii += 1
end

5. 数组和迭代

numbers = [1, 2, 3, 4, 5]
numbers.each do |number|puts number
end

6. 哈希(Hash)

person = { name: "John", age: 30 }
puts person[:name]  # 输出 John

7. 方法定义

def greet(name)puts "Hello, #{name}!"
endgreet("John")

8. 类和对象

class Personattr_accessor :name, :agedef initialize(name, age)@name = name@age = ageenddef greetputs "Hello, my name is #{@name} and I am #{@age} years old."end
endperson = Person.new("John", 30)
person.greet

9. 模块和混入

module Greetingdef say_helloputs "Hello, world!"end
endclass Personinclude Greeting
endperson = Person.new
person.say_hello

10. 块(Block)

[1, 2, 3, 4].each { |number| puts number * 2 }

11. 文件操作

File.open("file.txt", "r") do |file|while line = file.getsputs lineend
end

Ruby 的语法简洁而强大,非常适合快速开发。

相关文章:

  • mTLS(Mutual TLS)即双向传输层安全,是一种安全通信协议,用于在客户端和服务器之间建立双向的身份验证和加密通道。
  • 网络编程自学(4)——异步服务器设计
  • cheese安卓版纯本地离线文字识别插件
  • Python批量处理客户明细表格数据,挖掘更大价值
  • DDL 超时,应该如何解决 | OceanBase 用户问题集萃
  • 指令个人记录
  • 安卓使用memtester进行内存压力测试
  • Python绘图库----turtle(海龟)
  • Sui Bridge今日正式上线Sui主网
  • Recaptcha2 图像识别 API 对接说明
  • 在矩池云使用 Llama-3.2-11B-Vision 详细指南
  • 开放式耳机究竟是不是智商税?百元蓝牙耳机2024推荐指南
  • 常见的计算机网络协议
  • Next.js 14 使用 react-md-editor 编辑器 并更改背景颜色
  • VUE a-table 动态拖动修改列宽+固定列
  • 【5+】跨webview多页面 触发事件(二)
  • 2017年终总结、随想
  • Android单元测试 - 几个重要问题
  • ES6系统学习----从Apollo Client看解构赋值
  • Github访问慢解决办法
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Java Agent 学习笔记
  • Python - 闭包Closure
  • Python利用正则抓取网页内容保存到本地
  • spring + angular 实现导出excel
  • vue:响应原理
  • Vue小说阅读器(仿追书神器)
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 开发基于以太坊智能合约的DApp
  • 免费小说阅读小程序
  • 跳前端坑前,先看看这个!!
  • 《天龙八部3D》Unity技术方案揭秘
  • 1.Ext JS 建立web开发工程
  • Hibernate主键生成策略及选择
  • NLPIR智能语义技术让大数据挖掘更简单
  • ​flutter 代码混淆
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​TypeScript都不会用,也敢说会前端?
  • # 数论-逆元
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #pragma once与条件编译
  • #QT(TCP网络编程-服务端)
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (C++20) consteval立即函数
  • (MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
  • (PySpark)RDD实验实战——取一个数组的中间值
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (区间dp) (经典例题) 石子合并
  • (三十五)大数据实战——Superset可视化平台搭建
  • (十三)Flink SQL
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (转)德国人的记事本