ruby基本语法(1)
一些学习资源
感觉这个还是不错的 比较适合上手 刚开始比较有成就感 而且可以有在线的编译环境 很赞
http://www.ruby-doc.org/core-1.9.3/String.html#method-i-to_i
一个帮助文档
至于怎么安装ruby 修改环境变量什么的 应该有网上有许多参考资源
《Ruby on Rails》敏捷开发最佳实践
这个也是一点一点整理的 可能中间有些地方比较凌乱 一点一点不断整理中
零散的知识点
三种类型numbers Booleans strings
变量类型是可以自动识别的
几种基本的符号Addition (+)Subtraction (-)Multiplication (*)Division (/)Exponentiation (**)Modulo (%)2**3=8
Ruby中一切皆对象,所以一切对象都可以有自己的方法,事实上,整个Ruby程序默认地被放在一个顶层对象中。通常在editor中写好Ruby程序,由解释器(interpreter)解释 并在console窗口中显示结果 具体可以直接利用self关键字(指向该类的实例本身)直接输入 p self p self.Class会输出main Object这表示顶层类是object类 顶层类的一个对象是main
Ruby里面的所有的运算符都是方法,比如可以通过5.+(5)来执行相加的运算,但是为了与其他的语言保持形式上的一致,ruby中也可以写成5+5这样的表达
基本的测试命令 注释
要是没有安装IDE(感觉Rubymin比较好) 可以直接在cmd里面运行一些命令:
ruby -v检测安装是否成功
ruby -ce my.rb用于检测语法错误
ruby my.rb编译执行ruby文件
貌似debug需要另外安装,之前在windows下面安装,执行gem install的命令,总是搞不成功,很郁闷,之后学习cf的时候,在linux下面也需要gem install才知道原来是网络的原因,需要把gem的source list更改成为taobao的镜像(https://ruby.taobao.org/),在windows里应该也可以照猫画虎把,还没试过。
在Ruby中使用注释的时候,单行注释用“#”即可
多行注释 使用“=begin”开始 使用“=end”结束
(注意 =begin 与 =end =后面必须直接加上begin或者end 不能加入空格 否则ruby无法识别)
关于String 对象
Ruby 字符串的表示方法:
1、Ruby中允许使用单引号以及双引号来创建字符串a="Hello" b='Hello' puts a==b这样输出的结果是true
对双引号括起来的部分 ruby会执行更多的替换 对于单引号括起来的字符串 Ruby执行的替换较少,为了安全起见,还是用双引号括起来的形式比较好。
比如 #{expre} 是将内容替换成expre所表达的值
2、%/stuff/ 与%Q/stuff/
这两种方式中 stuff的位置上可以放一个较长的字符串,即使这个字符串很长也没有问题。
这是ruby中的多行字符串的表示方法。
3、还有一种多行字符串的表示方法
<<HERE
Balabalabala 多行字符串文本
HERE
标示符之间的内容是一个多行的字符串
“<<”表示符的语法比较灵活,也可也作为一个参数传入,特别是在方法的调用中(这个具体还有好多细节 这里也就写了个大概)
比如调用info方法
Info(str1 ,<<EOS)
这是一个字符串
EOS
第二个参数中传入的内容实际上就是字符串 “这是一个字符串”
字符串中一些比较常见的方法:
.length返回长度
.reverse返回逆序
.upcase将所有的字符全变成大写
.downcase将所有的字符全变成小写
字符串插入:
first_name="hessen"
puts"Your name is #{first_name}!"
输出 Your name is hessen
.capitalize使字符串的首字母大写 并且使后面的其他字母小写 返回修改之后的字符串(仅asc编码)
.capitalize!使字符串的首字母大写 并且使后面的其他字母小写(仅asc编码)若是字符串已经是第一个字母大写 其他字母小写的格式 则返回的是nil
其他的类似函数 比如.upcase 以及.downcase 加上!都可以有类似的效果
.include?"s" 表示在该字符串中查询 是否包含字符串“s”如果包含 则返回true 否则 返回false
.gsub!(/[s]/,"th") 全局替换 用th 来代替s 注意!与(之间不要有空格
注意要加上方括号 注意输入必须要是一个字符串的形式“ ”
concat(s1,s2,……,sn)函数,作用是把n个字符串按序连接起来构成一个新的字符串,当然,也可以像在java中那样,直接用加号把几个字符串连接成一个新的字符串。
a =1 b =a.to_s
将数字化为字符串
text.split(“,”)方法 表示在字符串text中,一旦遇到了”,” 就以”,”为分隔符,将text串分成几个单独的部分 但是text还是不变的
关于数组
Ruby数组中的数据类型可以不相同并且长度也是可变的。(好聪明啊 感觉用的久了就会变笨了,除非你本来就是老手)
Myarray=[1,2,“ruby”]
Ruby也支持那种-1的表示 比如
arry=[1,2,"ruby"]
puts arry[-4]
puts arry[-3]
puts arry[-2]
puts arry[-1]
puts arry[0]
puts arry[1]
puts arry[2]
puts arry[3]
输出:
1
2
ruby
1
2
ruby
array nil 1 2 ruby 1 2 ruby nil
index -4 -3 -2 -1 0 1 2 3
注意 ruby里面数组的下标也是从0开始的 数组中的第一个元素的index为0
若是直接输出 ruby[0..-1]相当于把数组中的所有元素都输出来了 从index=0d 一直输出到 index=无穷
其他的一些创建数组的方式:
#此种情况数组长度为0 不含任何元素 之后赋值的时候 数组长度会自发增加
array=Array.new
arry=[1,2,"ruby"]
arry[10]="python"
p arry[1..-1]
输出
[2,
"ruby", nil, nil, nil, nil, nil, nil, nil, "python"]
#先生成一个range在转化为数组,range也是ruby的一种数据类型,后面再介绍
Range=1..9
Array=range.to_a
在Ruby的数组里 截取操作很灵活 有时候有点matlab的感觉
arry="abcdefg"
puts arry[0]
#从索引为1开始截取,截取长度为3
puts arry[1,3]
#从索引为1开始截取,截取到索引为5,包含5号索引的值
puts arry[1..5]
#从索引为1开始,截取到长度为5,不包含该索引的值
puts arry[1...5]
输出
a
bcd
bcdef
bcde
nil
ruby基本语法(1)的更多相关文章
- Ruby的语法糖
发现Ruby的语法糖好多,比如函数调用,参数列表可以写括号和不写括号.代码块可以用do end 或者 {}. 还有 if,unless后置.等等. 如果看Ruby代码看多了,你会发现,它很多地方的 ...
- Ruby基本语法规则
1.Ruby常用数据类型 Numbers, Strings, Booleans my_num = 25 my_boollean = true (or false) my_string = " ...
- [ruby on rails] 深入(2) ruby基本语法
1. 调试&注释&打印输出 1.1 调试 ruby属于解释型语言,即脚本,在linux上,脚本的执行无非三种: 1. 用解释器运行脚本 解释器 脚本文件 即:ruby 脚本文件 2. ...
- ruby基础语法
首发:个人博客,更新&纠错&回复 学不同语言,常将它们的基础语法搞混,例如if后面有没有(),后面是then还是:还是{,结尾是end还是}. 这种事情毫无技术含量又毫无乐趣可言,但极 ...
- Ruby基本语法
更新: 2017/06/09 更新: 2017/06/20 cattr_accessor定义类变量,相当于@@ 更新: 2017/06/23 生成类的实例 更新: 2017/06/24 补充loop的 ...
- ruby基本语法(2)
关于数组 Ruby数组中的数据类型可以不相同并且长度也是可变的.(好聪明啊感觉用的久了就会变笨了,除非你本来就是老手)比如下面的例子 Myarray=[1,2,“ruby”] Ruby也支持那种-1的 ...
- 关于Ruby常用语法案例累积
变量问题: 类变量和方法变量的区别是什么? 类变量:可以直接使用 方法变量:需要实例化后,才能使用该变量 案例一: class Person @@name = "Tom" @@na ...
- 2.ruby基本语法,类的定义
1.在ruby中的定义class,ruby中定义类也是以关键字class开头 后面带着类名,类名以大写开头.一个类的结束以关键字end 结束.如: class Customer end 2.ruby类 ...
- ruby puts语法
str = "Welcom to china" str1 = str puts str + " 1" puts str1 + " 1" de ...
随机推荐
- Ubuntu 下使用 python3 制作读取 QR 码
Ubuntu 下使用 python3 制作读取 QR 码 作者已经在 Windows 上实现 python3 制作读取 QR 码.本文主要针对解决将代码移植到 Ubuntu 系统时所遇到的问题. 相关 ...
- MVC中easyui的easyui-combobox的使用
一,如下代码,赋值 @{string json = ""; foreach (var dic in EnumCouponDic) //EnumCouponDic是一个字典类型Dic ...
- Java Web项目使用图形验证码 — Kaptcha
一.验证码介绍 生成的主要方式: 1.使用Java原生的方式,其中包含了Servlet.AWT.ImageIO的使用: 2.使用开源库,例如Jcaptcha.Kaptcha...: (各图形验证码开源 ...
- SDK manager打不开解决办法
在下载管理android SDK过程中,有时会出现SDK manager.exe打不开的情况,网上也罗列了各种解决办法,其中地址为http://blog.csdn.net/pipisorry/arti ...
- CIFAR-10 dataset 的下载与使用、转图片
基本信息 CIFAR-10 是一个包含60000张图片的数据集.其中每张照片为32*32的彩色照片,每个像素点包括RGB三个数值,数值范围 0 ~ 255. 所有照片分属10个不同的类别,分别是 'a ...
- Python2 安装教程
目录 1. 推荐阅读 2. 安装包下载 3. 安装步骤 1. 推荐阅读 Python基础入门一文通 | Python2 与Python3及VSCode下载和安装.PyCharm破解与安装.Python ...
- gevent简介
gevent是基于协程的Python网络库. 协程存在的意义:对于多线程应用,CPU通过切片的方式来切换线程间的执行,线程切换时需要耗时(保存状态,下次继续).协程,则只使用一个线程,在一个线程中规定 ...
- ls 显示目录下的内容和文件相关属性信息
1.命令功能 ls命令是“list directory contents”,显示当前目录下的内容和文件属性. 2.语法格式 ls [option] file ls 选项 文件名 3.选项说明 ...
- 【转载】Mysql注入点在limit关键字后面的利用方法
描写sql注入利用方法的文章数不胜数,本文将描述一种比较特殊的场景. 细节 在一次测试中,我碰到了一个sql注入的问题,在网上没有搜到解决办法,当时的注入点是在limit关键字后面,数据库是MyS ...
- flask之表单
一:表单 表单用于注册,修改用户数据等场景. flask-wtf提供了一个包,可以创建表单:pip install flask-wtf 为了防止跨域请求,flask_wtf自己生成一个秘钥,用秘钥生成 ...