ruby語言介紹
它由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)創(chuàng)建于1993年,是面向?qū)ο蟮恼Z言蹬屹。
代碼形式
1、腳本形式
- 創(chuàng)建
*.rb
文件 #!/usr/bin/ruby \n puts "Hello World";
- 運行代碼
ruby file.rb
進入irb交互
在終端輸入 irb 即可
語法
代發(fā)分隔符
1包个、;
結(jié)束
2垛玻、換行符
BEGIN 代碼塊 和 END 代碼塊
-
BEGIN
: 在主題函數(shù)運行之前運行 -
ENG
: 最后執(zhí)行
#!/usr/bin/ruby
# -*- coding : utf-8 -*-
puts "趙炎";
puts "Hello World";
BEGIN{
puts "初始化 ruby"
}
END{
puts "運行結(jié)束"
}
Here Document
"Here Document" 是指建立多行字符串。在 << 之后泽谨,您可以指定一個字符串或標識符來終止字符串璧榄,且當前行之后直到終止符為止的所有行是字符串的值。
如果終止符用引號括起吧雹,引號的類型決定了面向行的字符串類型骨杂。請注意<< 和終止符之間必須沒有空格。
puts <<zhaoyan
hhhh,
jj jj
zhaoyan
hhhh, jj jj
中間可以有任意的空格雄卷,但是<<空格zhaoyan
NO搓蚪, 最后一個zhaoyan,前面有空格丁鹉,編譯失敗妒潭。而且最后一個終結(jié)標識zhaoyan
悴能,必須單獨一行
數(shù)據(jù)類型
Ruby支持的數(shù)據(jù)類型包括基本的Number、String杜耙、Ranges搜骡、Symbols,以及true佑女、false和nil這幾個特殊值记靡,同時還有兩種重要的數(shù)據(jù)結(jié)構(gòu)——Array和Hash。
Number
小整數(shù)占32位团驱, -2(31) 至 2(31)摸吠。
大整數(shù)占64位。
小整數(shù)自動轉(zhuǎn)化到大整數(shù)嚎花。
您可以在整數(shù)前使用一個可選的前導符號寸痢,一個可選的基礎指標(0 對應 octal,0x 對應 hex紊选,0b 對應 binary)啼止,后跟一串數(shù)字。下劃線字符在數(shù)字字符串中被忽略兵罢。
puts 123
puts 1_123; #1123
#二進制
puts 0b010101;
#八進制
puts 01231
#十六進制
puts 0x1fe
#a對應的asc碼
puts "a".ord
運算符
指數(shù)運算**
#指數(shù)算術(shù)
puts 2**(1/4)#1與4的商為0献烦,然后2的0次方為1
puts 16**(1/4.0)#1與4.0的商為0.25(四分之一),然后開四次方根
字符串
Ruby 字符串簡單地說是一個 8 位字節(jié)序列卖词,它們是類 String 的對象巩那。
雙引號標記的字符串允許替換和*使用反斜線符號,單引號標記的字符串此蜈,且只允許使用 \ 和 ' 兩個反斜線符號即横。
字符串格式化 : #{expr}
,在#{}中添加表達式裆赵。因為單引號字符串不支持替換所以东囚,字符串格式化只能在雙引號字符串中使用!U绞凇舔庶!
str = "趙炎\"\"zhah"
puts str
str = '左鴻飛\"\"'
puts str
puts "hello #{str}" # 輸出hello 左鴻飛\"\"
puts ‘hello #{str}’ # 輸出 hello #{str}
數(shù)組
數(shù)組字面量通過[]中以逗號分隔定義,且支持range定義陈醒。
(1)數(shù)組通過[]索引訪問
(2)通過賦值操作插入、刪除瞧甩、替換元素
(3)通過+钉跷,-號進行合并和刪除元素,且集合做為新集合出現(xiàn)
(4)通過<<號向原數(shù)據(jù)追加元素
(5)通過*號重復數(shù)組元素
(6)通過|和&符號做并集和交集操作(注意順序)
#!/usr/bin/ruby
# -*- coding: utf-8 -*-
ary = ["frend", 12, 1.23, '趙炎',]
ary.each do |i|
puts i
end
puts ary[0]
# 如果超出數(shù)組范圍肚逸,輸出的是空
puts ary[4]
puts ary
ary[0] = 'zzzz'
ary.each do |i|
puts i
end
hash值
Ruby 哈希是在大括號內(nèi)放置一系列鍵/值對爷辙,鍵和值之間使用逗號和序列 => 分隔彬坏。尾部的逗號會被忽略。
#!/usr/bin/ruby
# -*- coding: utf-8 -*-
hsh = colors = {"red"=>0xff0000, "green"=>0x00ff00, "blue"=>0x0000ff}
puts colors
hsh.each do |key, value|
print key, " is ", value, "\n"
end
puts
的區(qū)別 print 打印出個值并不會行膝晾,如果將上述的print改成puts 樣式會變?yōu)椋?/p>
red
is
16711680
green
is
65280
blue
is
255
范圍類型
一個范圍表示一個區(qū)間栓始。
范圍是通過設置一個開始值和一個結(jié)束值來表示。范圍可使用 s..e
和 s...e
來構(gòu)造血当,或者通過 Range.new
來構(gòu)造幻赚。
使用 .. 構(gòu)造的范圍從開始值運行到結(jié)束值(包含結(jié)束值)。使用 ... 構(gòu)造的范圍從開始值運行到結(jié)束值(不包含結(jié)束值)臊旭。當作為一個迭代器使用時落恼,范圍會返回序列中的每個值。
范圍 (1..5) 意味著它包含值 1, 2, 3, 4, 5离熏,范圍 (1...5) 意味著它包含值 1, 2, 3, 4 佳谦。
#!/usr/bin/ruby
# -*- coding: utf-8 -*-
(10..15).each do |n|
print "#{n} "
end