1,双引号和单引号
当字符串使用双引号的时候,可以编写二进制码到字符串中。
puts "This string\ncontains a newline"
# This string
# contains a newline
单引号输出如下
puts 'This string\ncontains a newline'
#This string\ncontains a newline
当使用单引号时,仅有的特殊代码是,你可以使用 "\'" 生成一个单引号,"\\"生成一个 "\"
puts 'it may look like this string contains a newline\nbut it doesn\'t'
# it may look like this string contains a newline\nbut it doesn't
puts 'Here is a backslash: \\'
# Here is a backslash: \
2, 方法后面的符号—— ! 和 ?
string.upcase
string
# => "MY FIRST STRING"
# => "My first string"
string.upcase!
string
# => "MY FIRST STRING"
# => "MY FIRST STRING"
"危险"的方法,会修改对象本身的方法,通常后面会有一个感叹号: upcase! 方法修改了string本身,而upcase没有。
另一种惯例句法是,谓词后面有一个问号,
string.empty? # => false
string.include? 'MY' # => true
3,遍历hash
hash = { "key1" => "val1", "key2" => "val2" }
string = ""
hash.each { |k,v| string << "#{k} is #{v}\n" }
puts string
# key1 is val1
# key2 is val2
更有效率的做法是:
string = ""
hash.each { |k,v| string << k << " is " << v << "\n" }
在Ruby中,string就像array一样,可以根据需要扩展而无需消耗太多的内存和时间。
a,经可能的使用诸如 string << k << " is " << v << "\n"的方式去构造字符串,这样效率更高些;
b,你不应该改变一个不属于你声明的字符串;
c,Array#join必须加一个分隔符作为参数,来隔离数组中相邻元素,join方法不会在末尾也加一个分隔符
区别:
data = ['1', '2', '3']
s = ''
data.each { |x| s << x << ' and a '}
s
data.join(' and a ')
# => "1 and a 2 and a 3 and a "
# => "1 and a 2 and a 3"
分享到:
相关推荐
在Ruby中,可以通过`$1`、`$2`等方式引用分组的结果,也可以通过`MatchData`对象的方法来访问这些结果。例如: ```ruby m = /([A-Za-z]+),[A-Za-z]+,(Mrs?\.)/.match("Peel,Emma,Mrs.,talented amateur") puts "Dea...
学习 Ruby 的旅程即将开始! Ruby 是一种功能强大、灵活的编程语言,广泛应用于 Web 开发、脚本编写和系统管理等领域。下面是学习 Ruby 的一些实用建议:首先,了解 Ruby 的基本概念和语法。 Ruby 是一种面向对象的...
这个"rubystudy"项目显然是为了帮助学习者深入理解Ruby语言的基本概念和特性。让我们通过这个项目来探索Ruby的一些核心知识点。 1. **面向对象编程**: Ruby是基于面向对象编程(OOP)的,所有数据在Ruby中都是对象...
1. **安装RUBY:** 可以通过官方网站下载最新的RUBY版本进行安装,对于Windows用户来说,推荐使用RubyInstaller进行安装。 2. **环境变量设置:** 安装完成后需要设置环境变量,将RUBY的bin目录添加到系统PATH中,...
你提供的`ruby-study.pdf`可能是一份详尽的Ruby学习资料,涵盖了Ruby的基础语法、类和模块、方法、数组和哈希等核心概念,以及面向对象编程的原则和实践。建议仔细研读这份文档,结合实际编码练习,加深对Ruby的理解...
[1, 2, 3].each do |num| puts num end ``` ### 类(Classes) 类是Ruby中的蓝图,用于创建具有相似属性和行为的对象。类定义使用`class`关键字开始,然后是类名,最后由`end`结束。类名通常以大写字母开头,遵循...
def study(subject) puts "I am studying #{subject}." end end ``` **3.4 特殊方法与特殊类** 特殊方法是指那些在Ruby中具有特殊含义的方法,例如`initialize`、`==`等。 **3.5 类变量与类方法** 类变量是以...
### RUBY基础入门指南 #### 一、Ruby语言概述 **1.1 Ruby的历史** Ruby是一种面向对象的脚本语言,由日本人松本行弘(Yukihiro Matsumoto)于1995年开始开发。它结合了Perl的灵活性、Smalltalk的强大功能以及Ada...
(1..5).each do |i| puts i end ``` #### 四、面向对象编程 - **类与对象**: - **定义类**:使用`class`关键字定义类,示例: ```ruby class Person def initialize(name, age) @name = name @age = ...
1. 变量:Ruby中的变量分为五种类型:局部变量(以小写字母或下划线开头)、实例变量(以`@`开头)、类变量(以`@@`开头)、全局变量(以`$`开头)和常量(以大写字母开头)。例如: ```ruby local_var = "Hello" ...
def study(subject) puts "#{@name} is studying #{subject}." end end ``` - **实例变量**:以`@`开头的变量是实例变量,只能被当前对象访问。 - **类变量**:以`@@`开头的变量是类变量,可以在类的所有实例...
def study puts "Studying hard in grade #{@grade}." end end ``` **3.4 特殊方法与特殊类** Ruby有一些特殊的类和方法,如`Object`类是所有类的基类,`Kernel`类包含常用的基本函数。 **3.5 类变量与类方法*...
1. **基础知识**:介绍算法的基本概念,如时间复杂度和空间复杂度,以及排序和搜索算法等基础内容。 2. **经典算法**:涵盖如快速排序、归并排序、二分查找等经典算法的实现和分析。 3. **数据结构**:讲解数组、...
### Ruby 语言中类与对象简介及入门级语法详解 #### 一、Ruby中的面向对象概念 Ruby是一种纯粹的面向对象编程语言,这意味着在Ruby中几乎所有的内容都是对象。面向对象编程(Object-Oriented Programming,OOP)的...
### Ruby经典学习教程知识点梳理 #### 一、Ruby语言概述 **1.1 Ruby的历史** - **起源**:Ruby语言最初由日本人松本行弘(Yukihiro Matsumoto)于1995年开始开发。 - **设计理念**:旨在提供一种既能满足功能需求...
1. **源代码文件**:Ruby程序通常以`.rb`为扩展名,这些文件可能包含了各种Ruby脚本和类定义。 2. **Gemfile**:Ruby使用Gem来管理依赖,Gemfile定义了项目所依赖的库和版本。 3. **README.md**:项目介绍和指南,...
在"study"存储库中,你可以期待找到以下关于Ruby的知识点: 1. **基础语法**:包括变量定义、数据类型(如整型、浮点型、字符串、数组、哈希等)、流程控制(if语句、case语句、循环结构如while、for和each)、函数...
1. **消息队列概念** 消息队列是一种解耦系统组件的方式,它允许生产者发送消息而不必知道消费者是谁,同样,消费者也可以在任意时间接收和处理消息,而无需与生产者保持同步。RabbitMQ作为消息队列的载体,负责...
1. **面向对象编程**:Ruby的核心特性是其强大的面向对象编程支持。在Ruby中,一切皆为对象,包括基本数据类型如数字、字符串和布尔值。每个对象都有其特定的方法和属性,这使得代码更加灵活和易于理解。 2. **动态...