`
jackzlz
  • 浏览: 140787 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第三章笔记(Ruby构造元素:数据、表达式、和流程控制)

    博客分类:
  • Ruby
 
阅读更多

常量

在Ruby中的表达形式是以大写字母开头的变量名。Pi = 3.141592 Pi = 500。如果尝试修改,将给出警告

字符串

puts "abc" * 5

abcabcabc

操作符可以应用于字符串中。如:puts "x" > "y",比较ASCII值

获得ASCII值
puts ?x
puts 120.chr

插写

x = 10
y = 20
puts "#{x} + #{y} = #{x + y}"

10 + 20 = 30

使用插写方式不用显示地把数字转换成字符串。

数组

x = [1, 2, 3, 4]

puts x[2]

x[2] = "Fish" * 3

x = []
x << "Word"

<<是把数据放到数组末尾的运算符。也可以调用push方法,具有相同的效果

puts x.pop
从数组末尾弹出数据

迭代

[1, "test", 2, 3, 4].each{|element| puts element.to_s + "x" }
each方法可以在数组的元素中进行迭代,还可以用collect方法,对数组进行实时转换
[1, 2, 3, 4].collect{ | element | element * 2}
[2, 4, 6, 8]

数组减法,从主数组中删除两个数组都有的元素

x = [1, 2, 3, 4, 5]
y = [1, 2, 3]
z = x - y
puts z.inspect

检查数组是否为空

x = []
puts "x is empty" if x.empty?

数组是否包含某个元素

x = [1, 2, 3]
puts x.include?("x")
puts x.include?(3)

访问数组第一个和最后一个元素

x = [1, 2, 3]
puts x.first
puts x.last

反转数组

x = [1, 2, 3]
puts x.reverse.inspect

散列表

dictionary = { 'cat' => 'feline animal', 'dog' => 'canine animal' }
puts dictionary['cat']

散列表迭代

x = { "a" =>, "b" => 2}
x.each { |key, value| puts "#{key} equals #{value}" }

检索键

puts x.keys.inspect

删除散列表元素

x.delete("a")

有条件删除

x.delete_if { |key, value| value < 25 }

流程控制

if 与 unless

unless 与 if 正好相反。

三元运算符

age = 10
type = age < 18 ? "child" : "aduit"

elsif 与 case

fruit = "orange"
case fruit
 when "orange"
  color = "orange"
 when "apple"
  color = "green"
 when "banana"
  color = "yellow"
 else
  color = "unknow"
end

while 与 until

x = 1
while x < 100
 puts x
 x = x * 2
end

x = 1
until x > 99
 puts x
 x = x * 2
end

代码块

代码块本质是匿名的、无名的方法或函数。
def each_vowel(&code_block)
 %w{a e i o u}.each { |vowel| code_block.call(vowel) }
end

each_vowel { |vowel| puts vowel }

yield自动检测传递给它的代码块
def each_vowel
 %w{a e i o u}.each { |vowel| yield vowel }
end
each_vowel { |vowel| puts vowel }

可以将代码块存储在变量中
print_parameter_to_screen = lambda { |x| puts x }
print_parameter_to_screen.call(100)

ruby中的大数字
其他语言常常有数字大小的限制,通常是32个二进制位。Ruby则不同,它没有这方面的限制。
实际上,它是用不同的类来处理的,Fixnum和Bignum,会自动处理。边界值是1 073 741 823




分享到:
评论

相关推荐

    ruby笔记1ruby笔记1ruby笔记1

    综合以上分析,我们可以期待这份压缩包内的笔记涵盖了Ruby的基础知识,如变量、数据类型、控制结构,以及进阶主题,如类和模块、方法、异常处理等。同时,它还包含了作者在学习过程中的情感体验,这对于其他学习者来...

    6正则表达式笔记[借鉴].pdf

    正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配、搜索、替换和提取信息。它在软件开发中广泛应用于数据验证、文本处理、输入校验等场景。正则表达式通过特殊的语法和运算符,允许程序员构建灵活且...

    学习笔记:Python爬虫正则表达式.doc

    学习笔记:Python爬虫正则表达式.doc

    正则表达式笔记归纳

    它在多种编程语言中都有应用,尤其是在JavaScript中,正则表达式被广泛用于数据验证、文本提取等方面。 #### 二、正则表达式的语法元素 正则表达式由一系列字符和特殊符号组成,用以匹配字符串中的特定模式。下面...

    java代码笔记2010-06-12:java控制台输入各类型类实现;以及判断输入字符串里面是否有数字的两种方法:方法1:转换成字符数组;方法2:正则表达式。

    本篇笔记主要探讨了如何在Java中实现控制台输入各种类型的数据,并提供了两种检查字符串中是否包含数字的方法。 首先,Java通过`System.in`流提供对控制台输入的访问。我们可以使用`Scanner`类来读取用户输入。以下...

    ruby笔记2ruby笔记2ruby笔记2

    9. **Ruby标准库与Gem**:Ruby自带丰富的标准库,同时有一个庞大的第三方库系统——Gem,用于扩展和增强Ruby的功能。 10. **Ruby on Rails框架**:Ruby最著名的应用是Web开发框架Rails,它简化了数据库驱动的Web...

    读书笔记:逐章解析正则表达式引擎工作原理写出高效地错误率的正则表达式。本仓库为正则教程.zip

    读书笔记:逐章解析正则表达式引擎工作原理写出高效地错误率的正则表达式。本仓库为正则教程

    正则表达式学习笔记正则表达式学习笔记

    ### 正则表达式学习笔记 #### 一、正则表达式概述 正则表达式是一种强大的文本处理工具,能够帮助我们完成各种复杂的字符串匹配、提取、替换等操作。正则表达式通过定义一系列规则来匹配字符串中的模式,广泛应用...

    C 语言谭浩强三版第三章~十章笔记.doc

    ### C语言谭浩强第三版第三章至第十章核心知识点概览 #### 数据类型、运算符与表达式 - **常量与变量** - 常量:在程序执行过程中,其值不会改变的量,可以直接引用。 - 变量:值可变的量,需先定义后使用,分为...

    ruby笔记3ruby笔记3ruby笔记3

    在Ruby笔记3中,我们将会深入探讨这个强大的语言的各个方面,包括基础语法、类与对象、模块、方法、控制结构、异常处理、文件操作以及一些高级特性。 首先,让我们从基础语法开始。Ruby中的变量分为四种类型:局部...

    EL表达式笔记3

    这种设计允许开发者根据需求控制数据的可见范围和生命周期。 3. EL表达式处理各种类型的数据: - 输出Bean的普通属性:如`${person.name}`可以获取`Person`对象的`name`属性。 - 输出数组属性:如`${person.phone...

    javascript正则表达式学习笔记

    这篇学习笔记将深入探讨JavaScript正则表达式的概念、语法和实际应用。 一、正则表达式基础 1. 创建正则表达式: - 字面量表示法:`/pattern/flags` - 构造函数:`new RegExp('pattern', 'flags')` 2. 常见的...

    数据结构第三章笔记——栈和队列

    数据结构第三章笔记——栈和队列

    java各知识点详细总结(毕向东笔记整理)

    第一章:编程基础 3-11 第二章:数组 11 -31 第三章:面向对象程序开发 31 -74 第四章:异常机制 74 -89 第五章:多线程技术 89 -122122122 第六章:常用类 API 122API 122 API 122API 122API 122API 122API 122-...

    正则表达式笔记

    正则表达式是一种强大的文本处理工具,用于在字符串中...在实际应用中,根据具体需求组合各种元素和规则,可以创建出满足复杂需求的正则表达式。同时,了解并合理使用Java提供的相关API,可以使代码更加高效和简洁。

    ruby初学笔记ruby初学笔记

    3. **变量(Variables)**:Ruby有四种类型的变量:局部变量(以小写字母或下划线开头)、实例变量(以`@`开头)、类变量(以`@@`开头)和全局变量(以`$`开头)。理解它们的作用域和使用规则非常重要。 4. **控制...

    正则表达式基础学习笔记

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。它通过一种简洁而强大的语法来定义一系列字符或字符组合,帮助程序员快速准确地定位和...

Global site tag (gtag.js) - Google Analytics