版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Ruby語言程序設(shè)計(jì)
第二章:基本語法沃天宇<woty@>2014-9-24課程基本教學(xué)大綱第一部分:Ruby語言基礎(chǔ)第一章:Ruby語言概述(2學(xué)時(shí))程序設(shè)計(jì)語言分類回顧、面向?qū)ο蟪绦蛟O(shè)計(jì)語言、腳本式程序設(shè)計(jì)語言Ruby語言出現(xiàn)歷史,基本特征概述,程序設(shè)計(jì)實(shí)例,應(yīng)用情況舉例,基本開發(fā)環(huán)境配置第二章:Ruby語言基本語法與面向?qū)ο筇卣鳎?學(xué)時(shí))基本控制結(jié)構(gòu)、基本語句、字符串和數(shù)字等基本數(shù)據(jù)類型、表達(dá)式類、模塊和命名空間;多態(tài)與重載;變量及方法的作用域第三章:高級(jí)特征(2學(xué)時(shí))集合類數(shù)據(jù)結(jié)構(gòu),數(shù)組和哈希表,基本類庫應(yīng)用函數(shù)式語言特征,程序塊;反射機(jī)制和元編程(metaprogramming)第二部分:基于RubyonRails的Web2.0應(yīng)用開發(fā)第四章:Web概述與RubyonRails開發(fā)基礎(chǔ)(2學(xué)時(shí))RoR基本原理,RoR工程結(jié)構(gòu),數(shù)據(jù)庫O-RMapping基本概念和技術(shù);基于絞手架的編程第五章:RubyonRails敏捷開發(fā)實(shí)踐1——基本CRUD(2學(xué)時(shí))重點(diǎn)掌握活動(dòng)記錄集;數(shù)據(jù)模型、控制器、視圖;數(shù)據(jù)增刪改查操作;表單處理;數(shù)據(jù)驗(yàn)證;
第六章:RubyonRails敏捷開發(fā)實(shí)踐2——對(duì)象關(guān)系(2學(xué)時(shí))以一個(gè)典型blog網(wǎng)站RoR項(xiàng)目為例,介紹基于MVC的RubyonRails開發(fā)全過程;常用功能實(shí)現(xiàn)技巧(如用戶管理等);代碼管理系統(tǒng)應(yīng)用第七章:RubyonRails敏捷開發(fā)實(shí)踐3——AJAX(2學(xué)時(shí))XML處理;AJAX;Web服務(wù);電子郵件第八章:Web安全與新興技術(shù)研究與應(yīng)用熱點(diǎn)(2學(xué)時(shí))云計(jì)算編程、Web與Ruby
on
Rails安全實(shí)踐Ruby語言基本語法基本語句注釋賦值基本控制結(jié)構(gòu)條件判斷選擇循環(huán)基本數(shù)據(jù)結(jié)構(gòu)表達(dá)式常量/變量字符串集合類數(shù)據(jù)結(jié)構(gòu)數(shù)組和哈希表正則表達(dá)式Ruby
Essentials/index.php/Ruby_Essentials注釋單行注釋多行注釋#Output"IloveRuby"say="IloveRuby" #Output"IloveRuby"putssay=beginThisisacommentlineitexplainsthatthenextlineofcodedisplaysawelcomemessage=end賦值#Output"IloveRuby"say="IloveRuby"putssay
#
Everystatementhasareturnvaluex=y=1#
Everything
is
an
Objecta=b #ERROR:bisnotdefineda=nila.nil? #=>truenil.nil? #=>true賦值并行賦值irb(main):100:0>a,b,c=10,20,30=>[10,20,30]irb(main):101:0>條件判斷x=5if
x>5thenputs“x>5”elseputs“x<=5”endx=5if
x>5thenputs“x>5”elsifx>0puts“0<x<=5”elseputs“x<=0”end條件判斷什么是false?x=falseif
xthenputs“a”elseputs“b”endx=""if
xthenputs“a”elseputs“b”endx=0if
xthenputs“a”elseputs“b”endx=nilif
xthenputs“a”elseputs“b”endbaab條件判斷my_status="happy"puts"helloworld"ifmy_status=="happy"條件判斷后置my_status="happy"puts“helloworld”unlessmy_status!="happy"選擇絕對(duì)值選擇result=casevalue
whenmatch1thenresult1
whenmatch2thenresult2
whenmatch3thenresult3
whenmatch4thenresult4
whenmatch5thenresult5
whenmatch6thenresult6
elseresult7
end選擇car="Patriot"manufacturer=casecar when"Focus"then"Ford" when"Navigator"then"Lincoln" when"Camry"then"Toyota" when"Civic"then"Honda" when"Patriot"then"Jeep" when"Jetta"then"VW" when"Ceyene"then"Porsche" when"Outback"then"Subaru" when"520i"then"BMW" when"Tundra"then"Nissan" else"Unknown"endputs"The"+car+"ismadeby"+manufacturer選擇區(qū)間選擇score=70result=casescore when0..40then"Fail" when41..60then"Pass" when61..70then"PasswithMerit" when71..100then"PasswithDistinction" else"InvalidScore“endputsresult循環(huán)基本for循環(huán)foriin1..10
doputs"helloworld"endforiin1..10
doputs“helloworld”
enddo不可以省略foriin1..10puts"helloworld"enddo可以省略循環(huán)區(qū)間1..10 #1,2,3,4,5,6,7,8,9,101…10foriin1…10
doputsiend123456789foriin1…10.1
doputsiend循環(huán)while
/
untili=0whilei<5do putsi i+=1endi=0putsi+=1untili==5i=10untili<5do putsi i-=1endi=10putsi-=1whilei>5運(yùn)行結(jié)果?if/unless,while/untilifnot<==>unlesswhilenot<==>until使用原則:減少not的使用循環(huán)其它循環(huán)方式10.times{puts"helloworld"}(1..10).each{puts"helloworld"}1.upto(10){puts"helloworld"}10.downto(1){puts"helloworld"}循環(huán)循環(huán)變量10.times{
|x|putsx}1.upto(10){|x|putsx}(1..10).each{|x|putsx}10.downto(1){|x|putsx}breakbreak
from
for/while
/
unitli=0whilei<5 putsi i+=1
breakifi==2endforiin1..12doputsi;breakifi>3endbreakbreak
times/upto/downto/each?10.times{
|x|putsxbreakifx>2}1.upto(10){|x|putsxbreakifx>2}(1..10).each{|x|putsxbreakifx>2}10.downto(1){|x|putsxbreakifx>2}區(qū)間1..100'a'..'z'用最少的語句,打印右圖aababcabcdabcdeabcdefabcdefgabcdefghabcdefghiabcdefghijabcdefghijkabcdefghijklabcdefghijklmabcdefghijklmnabcdefghijklmnoabcdefghijklmnopabcdefghijklmnopqabcdefghijklmnopqrabcdefghijklmnopqrsabcdefghijklmnopqrstabcdefghijklmnopqrstuabcdefghijklmnopqrstuvabcdefghijklmnopqrstuvwabcdefghijklmnopqrstuvwxabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyz('a'..'z').each{|x|('a'..x).each{|x|printx};puts}puts('a'..'z').map{|x|('a'..x).to_a.join}.join("\n")表達(dá)式基本操作符OperatorDescription+Addition-Addsvaluesoneithersideoftheoperator-Subtraction-Subtractsrighthandoperandfromlefthandoperand*Multiplication-Multipliesvaluesoneithersideoftheoperator/Division-Divideslefthandoperandbyrighthandoperand%Modulus-Divideslefthandoperandbyrighthandoperandandreturnsremainder**Exponent-Performsexponential(power)calculationonoperators表達(dá)式復(fù)合賦值CombinedOperatorEquivalentx+=yx=x+yx-=yx=x-yx/=yx=x/yx*=yx=x*yx%=yx=x%yx**=yx=x**y表達(dá)式irb(main):013:0>val=17
=>17irb(main):014:0>val==17.0=>trueirb(main):015:0>val.eql?(17.0)=>falseirb(main):016:0>val.eql?(17)=>trueirb(main):017:0>val.equal?(17)=>true表達(dá)式比較操作符ComparisonOperatorDescription==Testsforequality.Returnstrueorfalse.eql?Sameas==.
(with
same
type)!=Testsforinequality.Returnstrueforinequalityorfalseforequality<Lessthan.Returnstrueiffirstoperandislessthansecondoperand.Otherwisereturnsfalse>Greaterthan.Returnstrueiffirstoperandisgreaterthansecondoperand.Otherwisereturnsfalse.>=Greaterthanorequalto.Returnstrueiffirstoperandisgreaterthanorequaltosecondoperand.Otherwisereturnsfalse.<=Lessthanorequalto.Returnstrueiffirstoperandislessthanorequaltosecondoperand.Otherwisereturnsfalse.<=>Combinedcomparisonoperator.Returns0iffirstoperandequalssecond,1iffirstoperandisgreaterthanthesecondand-1iffirstoperandislessthanthesecond.表達(dá)式按位操作符BitwiseOperatorEquivalent~BitwiseNOT(Complement)|BitwiseOR&BitwiseAND^BitwiseExclusiveOR<<BitwiseShiftLeft>>BitwiseShiftRight表達(dá)式邏輯操作符LogicOperatorDescriptionandCalledLogicalANDoperator.Ifboththeoperandsaretruethenthenconditionbecomestrue.orCalledLogicalOROperator.Ifanyofthetwooperandsarenonzerothenthenconditionbecomestrue.&&CalledLogicalANDoperator.Ifboththeoperandsarenonzerothenthenconditionbecomestrue.||CalledLogicalOROperator.Ifanyofthetwooperandsarenonzerothenthenconditionbecomestrue.!CalledLogicalNOTOperator.Usetoreversesthelogicalstateofitsoperand.IfaconditionistruethenLogicalNOToperatorwillmakefalse.notCalledLogicalNOTOperator.Usetoreversesthelogicalstateofitsoperand.IfaconditionistruethenLogicalNOToperatorwillmakefalse.操作符的優(yōu)先級(jí)邏輯操作符MethodOperatorYes[][]=Yes**Yes!~+-Yes*/%Yes+-Yes>><<Yes&Yes^|Yes<=<>>=Yes<=>=====!==~!~MethodOperator&&||.....?
:=%={/=-=+=|=&=>>=<<=*=&&=||=**=defined?notorandifunlesswhileuntilbeginend關(guān)于邏輯運(yùn)算的幾個(gè)常見問題什么是falseif
0;putstrue;endiffalse;putstrue;endifnil;putstrue;endifObject.new;putstrue;end關(guān)于邏輯運(yùn)算符not,
and,or!,&&,||x=trueandfalsex=true&&falsey=falseortruey=false||truez=!falsez=notfalsetrueorfalseandfalsetrue||false&&false常量/變量NameBeginsWithVariableScope$Aglobalvariable@Aninstancevariable[a-z]or_Alocalvariable[A-Z]Aconstant@@Aclassvariable討論全局變量:$開頭,程序任何位置可訪問對(duì)象實(shí)例屬性(成員變量):用@開頭,e.g.@asdf類屬性:@@開頭,e.g.@@asdf本地變量:小寫字母開頭,作用域?yàn)槎x所在程序塊常量:大寫字母開頭,e.g.Abcd,ABCD字符串myString=String.new創(chuàng)建myString=String.new("Thisismystring.Getyourownstring")myString=String("Thisisalsomystring")myString="Thisisalsomystring"字符串單引號(hào)和雙引號(hào)str="Thisisabook.\nThatisapen."str='Thisisabook.\nThatisapen.'轉(zhuǎn)義myString=%&ThisismyString&表達(dá)式替換var=1/100.0asdf="asdf#{var}"數(shù)組(Array)定義數(shù)組添加元素讀取數(shù)據(jù)元素a=[]a=[1,2,3]a=%w{123} #=>["1","2","3"]a<<4.0a[10]=1a[0]a[-1]a[1..2]a[1000] #超過數(shù)組實(shí)際元素?cái)?shù)量?nila[-1000] #
nila[1.1] #
2a=[1,2,3]a.size #=>3數(shù)組討論:a=[1,2,3]a<<aa[-1] #=>?a[-1][-1] #=>?遍歷數(shù)組each方法:依次遍歷每個(gè)元素collect方法:依次遍歷每個(gè)元素,將代碼塊的結(jié)果收集成一個(gè)新的數(shù)組collect!和collecta=[1,2,3]a.each{|x|putsx}a=[1,2,3]a.collect{|x|x**2} #=>[1,4,9]a=[1,2,3]a.collect!{|x|x**2} #=>a=[1,4,9]遍歷數(shù)組each_with_index反向邊歷:reverse_each部分、間隔遍歷:a=%w{abc}a.each_with_indexdo
|item,index| puts"#{item}isatposition#{index}"enda=[1,2,3]a[1..2] #=>[2,3]2.upto(a.size-1){|x|putsx}(1..4).step(2){|x|putsx}3.step(10,3){|x|putsx}讀取數(shù)組內(nèi)容交換變量拆分?jǐn)?shù)組去除重復(fù)元素:uniq
/
uniq!/delete/compact逆轉(zhuǎn)數(shù)組:reverse/reverse!a=1b=2a,b=b,aa=[1,2,3]b,c=a #=>b=1,c=2b,*c=a #=>b=1,c=[2,3]a=[1,2,3,1,1,nil,nil]a.uniq #=>[1,2,3,nil]pact #=>[1,2,3,1,1]a.delete(1) #=>[2,3,nil,nil]a=[1,2,3]a.reverse #=>[3,2,1]數(shù)組排序sort
/
sort_by元素累計(jì):injecta=[32,1,5,2,6,8]a.sort #=>[1,2,5,6,8,32]a.sort{|x,y|y<=>x} #=>[32,8,6,5,2,1]a=%w{AppleorangebananaBanboo}a.sort_by{|x|x.upcase} #=>大小寫無關(guān)a.sort_by{|x|rand} #=>打亂順序a=[1,2,3]a.inject(0){|sum,i|sum+i}a=[1,2,3]sum=0a.each{|x|sum+=x}a.inject(1){|sum,i|sum*i}集合運(yùn)算[1,2,3]|[1,4,5] #=>[1,2,3,4,5][1,2,3]&[1,4,5] #=>[1][1,2,3]-[1,4,5] #=>[2,3][1,2,3,1]|[] #=>?[1,2,3]+[4,5,6] #=>?[1,2,3]&&[4,5,6] #=>?[1,2,3]||[4,5,6] #=>?散列(Hash)創(chuàng)建散列empty=Hash.newempty={}empty=Hash.new(0)numbers=Hash['One',1,'two',2]numbers={'one'=>1,'two'=>2}鍵(key)和值(value)numbers['two']
#=>2numbers['ten']=10numbers.keys #=>[’one’,‘two’,’ten’]numbers.values #=>[1,2,10]numbers.delete('One')符號(hào):id:nameitem=Hash.newitem[:name]=“wty”item[:tel]=“82339274”字符串與符號(hào)的區(qū)別?:asdf'asdf'.intern"asdf".equal?"asdf""asdf".eql?"asdf":asdf.equal?:asdf:asdf.equal?"asdf":asdf.equal?"asdf".intern散列迭代each/each_paireach_key/each_valueh={1=>2,2=>3,4=>5}h.each{|k,v|printk,"=>",v,"\n"}h={1=>2,2=>3,4=>5}h.each_key{|k|putsk}h.each_value{
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年技術(shù)投資合作協(xié)議
- 民間借款協(xié)議書的風(fēng)險(xiǎn)防范
- 數(shù)字作品版權(quán)協(xié)議模板
- 2024新合作設(shè)立分公司協(xié)議范本
- 2024版工程中介居間合同樣本
- 房產(chǎn)代理合同范本
- 勞動(dòng)合同續(xù)簽的溝通技巧分享
- 股權(quán)質(zhì)押合同新格式
- 蘇教版小學(xué)數(shù)學(xué)四年級(jí)下冊《用數(shù)對(duì)確定位置》公開課教學(xué)設(shè)計(jì)及說課稿
- 策略性合作合同模板及解讀
- 人民醫(yī)院神經(jīng)外科臨床技術(shù)操作規(guī)范2023版
- 人教鄂教版六年級(jí)科學(xué)上冊全冊教學(xué)設(shè)計(jì)教案
- 暈厥的診斷與治療暈厥專家講座
- 《做自己的心理醫(yī)生 現(xiàn)代人的心理困惑和自我療愈策略》讀書筆記思維導(dǎo)圖PPT模板下載
- 研學(xué)安全主題班會(huì)課件
- 《觀察洋蔥表皮細(xì)胞》實(shí)驗(yàn)記錄單
- 學(xué)校德育活動(dòng)記錄
- 《靜女》公開課教案優(yōu)秀3篇
- GB/T 12703-1991紡織品靜電測試方法
- HSK四級(jí)聽力答題技巧課件
- 人教部編版《道德與法治》三年級(jí)上冊第8課《安全記心上》說課課件
評(píng)論
0/150
提交評(píng)論