ruby
是一种面向对象的脚本语言。
Ruby on Rails: 是一个可以使你开发,部署,维护 web 应用程序变得简单的框架。
ruby是用c语言开发的。
安裝ruby:
sudo apt-get install ruby2
windows安装ruby后需要修改环境变量path。
irb: ruby的交互解释器, ctrl + d 或exit 退出解释器。
ri: 查看ruby文档的命令
ruby程序两种写法:
1.第一行:#!/usr/bin/ruby
更改属性:chmod u+x XXX.rb
执行:./XXX.rb
2.第一行:#!/usr/bin/ruby
ruby程序写好后直接执行:ruby XXX.rb
# 开始的行表示注释。
ruby可以使用魔法注释指定编码方式:
# encoding: GBK/UTF-8/…
ruby2默认使用utf-8
ruby的多行注释:
=begin
…
=end
#########################################
ruby命令行选项:
ruby [switches] [–] [programfile] [arguments...]
-E UTF-8 指定输出结果编码方式.
#########################################
ruby环境变量:
DLN_LIBRARY_PATH : 动态加载模块的搜索路径
HOME :
LOGDIR
PATH : 执行子进程的搜索路径
RUBYLIB : 库的搜索路径
RUBYLIB_PREFIX : 用于修改RUBYLIB的搜索路径
RUBYOPT : 传给ruby解释器的命令行选项
RUBYPATH : 指定-S 选项后ruby程序的搜索路径
RUBYSHELL : 指定执行命令时使用的shell。
#########################################
ruby基本语法:
----------------------------
常量和变量:
变量:
变量名 = 对象
----------------------------
字符串类型:
字符串是可变类型。
\n 换行
\ 转义
单引号的字符串: \n原样输出
双引号的字符串: \n换行
----------------------------
布尔类型:
true(不是True)
false(不是False)
nil(不是None)
----------------------------
数组类型:
数组是按顺序保存多个对象的对象。是一个容器。
任何对象都可以作为数组元素。
array = []
array = [“val1”, val2”, … ]
数组索引:
array[index]
数组再赋值:
如果索引存在,替换原来的值,否则,数组大小增大。
array[index] = value
array.size #使用size方法查看数组大小
数组遍历:
array.each do |val| # |val| 是用来接收数组元素的变量
expression
end
特殊数组ARGV:
ARGV[]用来保存命令行的参数。
ARGV[0]表示第一个参数,而不是程序名字。
----------------------------
散列hash:
散列是键值对的一种数据结构。是一个容器。
一般用字符串或符号作为键。
:sig 用冒号开头的字符串表示一个符号对象。
定义散列:
hash = {:key1 => val1, :key2=> val2, :key3 = > val3}
hash = {key1: val1, key2:val2, key3: val3}
hash[key] # 通过键来访问散列的值。
hash[key] = val #给键赋值。
遍历散列:
hash.each do |key, val|
expression
end
----------------------------
运算符:
#########################################
ruby控制流:
----------------------------
条件语句:
if condition then
expression
elsif
expression
else
expression
end
unless
case
----------------------------
循环语句:
while condition do
expression
end
#########################################
文件和输入输出:
----------------------------
输出:
print():
puts():
p(): 数值结果和字符串结果会以不同的形式输出, \n 和 \t等特殊字符不会转义,原样输出.
----------------------------
输入:
----------------------------
文件:
file = File.open(“filename”)
text = file.read
lines = file.each_line
print text
file.close
#########################################
方法:
ruby的方法类似于其它语言的函数.
def function-name(arguments)
…
end
ruby在调用方法是可以省略().
#########################################
出错和异常处理:
#########################################
模块:
require(不是import)
require lib_name
#########################################
面向对象:
class class-name
def function-name()
…
end
end
obj = class-name.new()
obj.function-name()