当前位置: 首页 > 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 的语法简洁而强大,非常适合快速开发。

相关文章:

Ruby基础语法

Ruby 是一种动态、反射和面向对象的编程语言&#xff0c;它以其简洁的语法和强大的功能而受到许多开发者的喜爱。以下是 Ruby 语言的一些基本语法&#xff1a; 1. 打印输出 puts "Hello, Ruby!" 变量赋值 x 10 name "John" 2. 数据类型 Ruby 有多种…...

插入排序C++

题目&#xff1a; 样例解释&#xff1a; 【样例解释 #1】 在修改操作之前&#xff0c;假设 H 老师进行了一次插入排序&#xff0c;则原序列的三个元素在排序结束后所处的位置分别是 3,2,1。 在修改操作之后&#xff0c;假设 H 老师进行了一次插入排序&#xff0c;则原序列的三个…...

修改ID不能用关键字作为ID校验器-elementPlus

1、校验器方法 - forbiddenCharValidator const idUpdateFormRef ref(null); const forbiddenCharValidator (rule, value, callback) > {const forbiddenCharacters [as,for,default,in,join,left,inner,right,where,when,case,select];for (let forbiddenCharacter o…...

一文详解WebRTC、RTSP、RTMP、SRT

背景 好多开发者&#xff0c;希望对WebRTC、RTSP、RTMP、SRT有个初步的了解&#xff0c;知道什么场景该做怎样的方案选择&#xff0c;本文就四者区别做个大概的介绍。 WebRTC 提到WebRTC&#xff0c;相信好多开发者第一件事想到的就是低延迟&#xff0c;WebRTC&#xff08;W…...

全国职业院校技能大赛(大数据赛项)-平台搭建Zookeeper笔记

ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务&#xff0c;为分布式应用提供一致性服务。它的设计目标是简化分布式系统的管理&#xff0c;保证多个节点之间的数据一致性和协调工作。ZooKeeper提供了类似文件系统的层次化命名空间&#xff0c;用来存储和管理元数…...

不同领域神经网络一般选择什么模型作为baseline(基准模型)

在神经网络研究中&#xff0c;选择合适的baseline&#xff08;基线模型&#xff09;是评估新方法有效性的重要步骤。基线模型通常是领域内公认的、性能良好的参考模型&#xff0c;用于比较和验证新提出模型的优势。以下是一些在不同任务和领域中常见的基线模型选择&#xff1a;…...

华为-IPv6与IPv4网络互通的6to4自动隧道配置实验

IPv4向IPv6的过渡不是一次性的,而是逐步地分层次地。在过渡时期,为了保证IPv4和IPv6能够共存、互通,人们发明了一些IPv4/IPv6的互通技术。 本实验以6to4技术为例,阐述如何配置IPv6过渡技术。 配置参考 R1 # sysname R1 # ipv6# interface GigabitEthernet0/0/1ip address 200…...

【spring中event】事件简单使用

定义事件类 /* * 1. 定义事件类 * 首先&#xff0c;我们创建一个自定义事件 UserRegisteredEvent&#xff0c;用于表示用户注册事件。 * */ public class UserRegisteredEvent extends ApplicationEvent {private final String email;public UserRegisteredEvent(Object sourc…...

leetcode每日一题day19(24.9.29)——买票需要的时间

思路&#xff1a;在最开始的情况下每人需要买的票数减一是能保持相对位置不变的&#xff0c; 如果再想减一就有可能 有某些人只买一张票&#xff0c;而离开了队伍&#xff0c; 所有容易想到对于某个人如果比当前的人买的多就按当前的人数量算 因为在一次次减一的情况下&#xf…...

智源研究院推出全球首个中文大模型辩论平台FlagEval Debate

近日&#xff0c;智源研究院推出全球首个中文大模型辩论平台FlagEval Debate&#xff0c;旨在通过引入模型辩论这一竞争机制对大语言模型能力评估提供新的度量标尺。该平台是智源模型对战评测服务FlagEval大模型角斗场的延展&#xff0c;将有助于甄别大语言模型的能力差异。 F…...

python实用脚本(二):删除xml标签下的指定类别

介绍 在目标检测中&#xff0c;有些时候会遇到标注好的类别不想要了的情况&#xff0c;这时我们可以运行下面的代码来批量删除不需要的类别节省时间。 代码实现&#xff1a; import argparseimport xml.etree.ElementTree as ET import osclasses [thin_smoke]def GetImgNam…...

vue3 父子组件调用

vue3 父子组件调用 父组件调用子组件方法 子组件使用defineExpose将方法抛出 父组件定义 function&#xff0c;子组件通过 defineExpose 暴露方法&#xff0c;父组件通过 ref 获取子组件实例&#xff0c;然后通过 ref 获取子组件方法。 // 父组件 <template><div>…...

线性模型到神经网络

&#x1f680; 在初始神经网络那一节&#xff08;链接如下&#xff1a;初始神经网络&#xff09;的最后&#xff0c;我们通过加大考虑的天数使得我们最后得到的模型Loss最终停留在了0.32k&#xff0c;当我们在想让模型更加准确的时候&#xff0c;是做不到的&#xff0c;因为我们…...

【架构】前台、中台、后台

文章目录 前台、中台、后台1. 前台&#xff08;Frontend&#xff09;特点&#xff1a;技术栈&#xff1a; 2. 中台&#xff08;Middleware&#xff09;特点&#xff1a;技术栈&#xff1a; 3. 后台&#xff08;Backend&#xff09;特点&#xff1a;技术栈&#xff1a; 示例场景…...

Stable Diffusion 蒙版:填充、原图、潜空间噪声(潜变量噪声)、潜空间数值零(潜变量数值零)

在Stable Diffusion中&#xff0c;蒙版是一个重要工具&#xff0c;它允许用户对图像的特定部分进行编辑或重绘。关于蒙版蒙住的内容处理选项&#xff0c;包括填充、原图、潜空间噪声&#xff08;潜变量噪声&#xff09;、浅空间数值零&#xff08;潜变量数值零&#xff09;&…...

ffmpeg录制视频功能

本文目录 1.环境配置2.ffmpeg编解码的主要逻辑&#xff1a;3. 捕获屏幕帧与写入输出文件4. 释放资源 在录制结束时&#xff0c;释放所有分配的资源。5.自定义I/O上下文6.对于ACC编码器注意事项 1.环境配置 下载并安装FFmpeg库 在Windows上 从FFmpeg官方网站下载预编译的FFmpeg…...

【LeetCode】每日一题 2024_10_1 最低票价(记忆化搜索/DP)

前言 每天和你一起刷 LeetCode 每日一题~ 大家国庆节快乐呀~ LeetCode 启动&#xff01; 题目&#xff1a;最低票价 代码与解题思路 今天这道题是经典动态规划&#xff0c;我们定义 dfs(i) 表示从第 1 天到 第 i 天的最小花费&#xff0c;然后使用祖传的&#xff1a;从记忆…...

[C++] 小游戏 征伐 SLG DNF 0.0.1 版本 zty出品

目录 先赞后看 养成习惯 War and Expedition SLG DNF 0.0.1 version 讲人话就是 图标解释&#xff1a; 绿色代表空地&#xff0c;可通过&#xff0c;对应数值 0 蓝色“~ ”为水&#xff0c;不可通过&#xff0c;对应数值 1 棕色“”为桥梁&#xff0c;可通过&#xff0…...

黑马头条day7-app端文章搜索

今天的内容也只是跑了一下 对于具体的实现掌握的很差 仔细看 es 在微服务学的es使用基本忘光了 这里用起来一点都熟悉 重学&#xff01;&#xff01;&#xff01; kafka异步 文章自动构建索引的时候用到了‘’ mongoDB 用来存储用户的搜索记录 遗忘&#xff08;拦截器 j…...

嵌入式必懂微控制器选型:STM32、ESP32、AVR与PIC的比较分析

目录 1 微控制器基础概述 1.1 微控制器基本概念 1.2 工作原理及架构 1.3 STM32、ESP32、AVR和PIC简介 2 微控制器性能比较分析 2.1 性能比较 2.2 功耗比较 2.3 功耗分析 2.4 外设接口对比 3 应用场景与选择策略 3.1 物联网应用场景 3.2 工业控制场景 3.3 智能家居场…...

产品竞争策略方法论:构建“差异化 + 结构化 + 系统化”的竞争优势

目录 一、问题与背景 二、本文将系统讲解 三、产品竞争的本质与底层逻辑 3.1 竞争的本质 3.2 竞争的三层结构(必须理解) 3.3 IoT竞争的特殊性 四、IoT产品竞争结构模型(核心框架) 4.1 五层竞争模型(核心体系) 4.2 竞争演进路径 五、五大竞争策略模型(核心方法…...

OpalServe:构建团队AI工具统一控制平面,实现MCP服务器集中治理

1. 项目概述&#xff1a;为团队AI工具构建统一控制平面如果你和你的团队正在使用Claude Desktop、Cursor、Windsurf这类支持MCP&#xff08;Model Context Protocol&#xff09;的AI编程工具&#xff0c;那么下面这个场景你一定不陌生&#xff1a;每个开发者都需要在自己的机器…...

如何轻松备份微信聊天记录:iOS用户的终极解决方案

如何轻松备份微信聊天记录&#xff1a;iOS用户的终极解决方案 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾经因为手机损坏或更换设备而丢失了珍贵的微信聊天记…...

ESP8266+STM32远程控制实战:如何通过华为云中转指令与数据

ESP8266STM32远程控制实战&#xff1a;华为云物联网全链路开发指南 在智能家居和工业监控领域&#xff0c;远程设备控制一直是核心技术痛点。当ESP8266遇上STM32&#xff0c;再通过华为云物联网平台搭建通信桥梁&#xff0c;这个组合能爆发出怎样的生产力&#xff1f;本文将带您…...

基于Gemini与Elasticsearch构建智能数据查询命令行工具

1. 项目概述&#xff1a;当Elasticsearch遇见Gemini&#xff0c;一个命令行智能体的诞生 最近在开源社区里闲逛&#xff0c;发现了一个挺有意思的项目&#xff1a; elastic/gemini-cli-elasticsearch 。光看这个名字&#xff0c;就能嗅到一股“强强联合”的味道。Elasticsea…...

嵌入式软件测试的范式革命——技术体系与工程价值深度解析

第一章 引言&#xff1a;嵌入式软件质量危机的时代背景在汽车电子、航空航天、工业控制、医疗设备等安全关键领域&#xff0c;嵌入式软件的复杂度正以指数级速度增长。一辆高端智能电动汽车的代码量已突破两亿行&#xff0c;超越了波音787客机的软件规模。与此同时&#xff0c;…...

别再让数码管显示拖垮你的51单片机!频率计项目中CPU时间分配的优化实战

51单片机频率计项目中的CPU时间优化艺术&#xff1a;从阻塞式刷新到状态机重构 当你在深夜调试51单片机频率计项目时&#xff0c;是否经历过这样的绝望时刻——测量数据明明准确&#xff0c;但数码管显示却闪烁不定&#xff1b;或者当输入信号频率升高时&#xff0c;整个系统突…...

卡尔曼滤波中的‘信任度’分配:从高斯分布乘积公式看估计与观测谁更重要

卡尔曼滤波中的‘信任度’分配&#xff1a;从高斯分布乘积公式看估计与观测谁更重要 在机器人定位或金融时间序列预测中&#xff0c;我们常常面临一个核心问题&#xff1a;当预测值和观测值都存在不确定性时&#xff0c;如何决定更信任哪一个&#xff1f;这不仅仅是数学问题&a…...

手把手教你用Intel System Debugger和DCI OOB盒子抓取开机日志(附CSME解码文件获取指南)

硬件调试实战&#xff1a;Intel System Debugger与DCI OOB盒子的替代方案指南 当主板开机卡死在LOGO界面或出现花屏时&#xff0c;传统调试工具链的突然失效往往让工程师陷入困境。我曾亲眼见过一位同事因为误改GDK7开发板的BIOS设置&#xff0c;导致价值上万的DCI-USB3调试线缆…...

3个步骤搭建Sunshine游戏串流服务器:从零到一的完整指南

3个步骤搭建Sunshine游戏串流服务器&#xff1a;从零到一的完整指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否曾经梦想过在客厅的电视上玩书房电脑里的3A大作&#xf…...