ruby简单的基础 4
后缀标点符号
=结尾
假设方法名字以=结尾的,那么在调用此方法时能够省略这个=。
?结尾
作为一个实用惯例,那些返回布尔值的方法通常都有一个以问号结尾的名字。
。结尾
这个命名惯例通常时对两种方法区分:以感叹号结尾的方法一般会改变调用它们的对象,不以感叹号结尾的方法则不会改动调用它们的对象。而是改动原始对象的一个拷贝。
圆括号
在ruby中,圆括号一般是可选的而且一般都被省略掉,尤其是在调用那些不带參数的方法时更是如此。
字符串内插
由双引號“”引起来的字符串中能够包括不论什么ruby表达式。前提是这些表达式包括在分界符#{和}里。
分界符之间的表达式的值将被转换成一个字符串(通过调用to_s方法),这个字符串将替换原字符串中的表达式文本以及分界符。
num = 2
str = "xiao song"
puts "num is : #{num},str is : #{str}"
表达式和操作符
ruby中差点儿全部的语句实际上时表达式。可是它们并非都会返回有意思的值。
和大多数语言一样,ruby中的表达式通常由变量和操作符构成。
很多ruby的操作符都是作为方法来实现的。而且类能够依照它们的需求来定义或重载这些方法。
字面量和keyword
字面量就是像 1。1.0,“hello”这样的值,它们时直接嵌入在您的程序文本中的。
某些rubykeyword是主要的表达式,如
nil 求值为nil,NilClass类
true 求值为TureClass类的单例实例,是一个代表布尔值ture的对象。
false 求值为FalseClass类的单例实例,是一个代表布尔值false的对象。
self 求值为当前对象。
变量引用
一个变量就是一个值的名字,通过赋值表达式能够创建变量并对其赋值。当一个变量名不是出如今赋值操作的左側时,它就是一个变量引用表达式,而且会被求值成该变量的值。
one = 1.0 #赋值表达式,把1.0赋值给one
test = one #one 求值表达式。求值成1.0并赋值给test
未初始化的变量
类型 是否必须初始化 没有初始化后果
类变量是 抛出NameError
实例变量 否(默觉得nil) 假设调用ruby解释器使用-W选项,会发出警告
全局变量否(默觉得nil) 假设调用ruby解释器使用-W选项,会发出警告
局部变量 否(默觉得nil)
常量引用
依照惯例,常量名都是全部大写,而且使用下划线切割单词,如PAGE_NUM。
ruby的类和模块名也是常量。但依照惯例,它们採用驼峰时写法。如BigPerson。
方法调用
一个方法调用表达式由4部分组成
1、一个随意的表达式,它的值就是将要在其上调用该方法的对象。这个表达式后接分隔符.或者::,然后再接方法名。
表达式和分隔符都是可选的。假设它们被省略了,就会在self上调用该方法。
2、被调用的方法名字。
它必须存在。
3、将要传递的參数值。參数列表能够置于一对圆括号里,可是通常圆括号都是可选的。
假设有多个參数。他们将被逗号隔开。
4、一个可选的代码块。
它位于一对花括号或者一个do/end中。
并行赋值
1、左值右值的数量相等
x,y,z = 1,2,3 # x = 1,y = 2,z = 3
这样的情况下,第一个右值赋给第一个,第二个右值给第二个。。
。
2、一个左值,多个右值
x = 1,2,3 # x = [1,2,3]
这样的情况下,ruby会创建一个数组来容纳全部右值,并把这个数据赋给左值
3、多个左值,一个右值
x,y,z = [1,2,3] # x = 1,y = 2,z = 3
x = [1,2] # x = [1,2]
x, = [1,2] # x = 1
这样的情况下,假设右值是一个数组。ruby会扩展该数组。这样一来每一个数组元素都会变成一个右值。
假设右值不是一个数组,可是实现了to_ary方法,那么ruby就会调用此方法而且扩展其返回的数组。
4、左值多于右值
x,y,z = 1,2 #x = 1,y = 2,z = nil
这样的情况下。未被赋值的左值会被赋值nil
5、右值多于左值
x,y = 1,2,3 # x = 1, y = 2,3木有赋给不论什么变量
这样的情况下,多余的右值会被丢弃。
转载于:https://www.cnblogs.com/gccbuaa/p/6791173.html
ruby简单的基础 4相关推荐
- Ruby使用RabbitMQ(基础)
Ruby使用RabbitMQ(基础) RabbitMQ documentation rabbitmq-tutorials rabbitmq-configure bunny 前提 最近刚刚接触到mq, ...
- python爬虫入门-python爬虫入门,8分钟就够了,最简单的基础教学!
一.基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序. 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HT ...
- (五)Kotlin简单易学 基础语法-初始函数(下)
(五)Kotlin简单易学 基础语法-初始函数(下) 函数内联 ➢ lambda可以让你更灵活的编写应用,但是,灵活也要付出代价的. ➢在JVM上,你定义的lambda会以对象实例的形式存在,JVM会 ...
- (二十三)Kotlin简单易学 基础语法-什么是函数式编程
(二十三)Kotlin简单易学 基础语法-什么是函数式编程 什么是函数式编程 我们一直在学习面向对象编程范式,另一个较知名的编程范式是诞生于20世纪50年代,基于抽象数学的λ演算发展而来的函数编程,尽 ...
- python超简单超基础的免费小说爬虫
python超简单超基础的免费小说爬虫 需要准备的环境 选取网页 思路 代码 总结 需要准备的环境 1.python 3.0及以上皆可 2.requests库,os,re 选取网页 找一个免费的小说网 ...
- C语言超简单入门——基础知识
C语言超简单入门--基础知识 一.进制转换 进制:二进制.八进制.十进制.十六进制 进制的脚标: 二进制:B 如:101B 八进制:Q 如:12Q 十进制:D 如:10D 十六进制: H 如:123H ...
- 一个简单的基础通信协议的设计与实现
一个简单的基础通信协议的设计与实现 一种常见的通信协议格式 搭建串口收发环境 配置STM32CubeMX 添加USART部分代码 通信协议的实现 不同设备之间的通信,都需要设计自己的通信协议.为了保证 ...
- PHP简单入门基础知识
PHP简单入门基础知识 作为一个web前端开发者第一天开始学php,整理的以下笔记,笔记并不完善,只是自我觉得和html,js有差别的地方做了下入门笔记 PHP 变量规则: 变量以 $ 符号开头,其后 ...
- python爬虫入门,10分钟就够了,这可能是我见过最简单的基础教学
一.基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序. 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HT ...
最新文章
- 我的朋友受到社交媒体的算法推荐“蛊惑”,加入了激进组织
- SCVMM 2008 R2 SP1 快速修改动态内存
- [转]PHP用mysql数据库存储session
- Linux【命令】修改文件内容
- 文本分类(一)EWECT微博情绪分类大赛第三名Bert-Last_3embedding_concat最优单模型复现
- 新手必看 | RVB2601开发板快速上手指南
- Table definition on master and slave does not match
- Java 类的特性1
- 安卓APP_ 控件(10)—— ListView可上下滑动的列表(重要)与ViewHolder优化
- MySQL学习(2)
- RocketMQ之事务消息
- 基础编程题目集 6-1 简单输出整数 (10 分)
- vue.js之过渡效果-css
- vi 方向键 ABC
- SCM供应链管理系统对更多行业未来
- 移动H5手势密码解锁插件--demo
- deepin,真好用-09-deepin真垃圾
- 翻译:理解特征工程(2)-分类数据
- linux 指令熟悉
- 浅析中国综艺的营销策略
热门文章
- Git知识点笔记-基本常识
- C++ leetcode 17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
- FreeRtos学习笔记(11)查找就绪任务中优先级最高任务原理刨析
- 第九周项目实践1 二叉树的链式存储及基本运算 算法库
- convexHull函数
- 协变逆变java_Java中的逆变与协变
- 深度学习语音降噪方法对比_人工智能-关于深度学习的基础方法
- 【解决办法】No module named 'ahocorasick'
- R语言-画edcf图、直方图、正态概率图,计算分位数(任意分位)
- 【解决方案】vue不是内部或外部命令