Ruby基礎語法
切換編程語言,最煩的就是記不住控制流用大括弧還是冒號,用不用小括弧……
以下代碼2015年發在個人博客,搬過來,僅用於切換語言時參考。
#參考:《Ruby完全自學手冊》第三章、第四章n#常量大寫字母開頭,變數小寫字母開頭nCHANG_LIANG = 1nbian_liang = 2nbian_liang = "2"#弱類型n##分支控制n#ifnif 2 > 1 thenn #nelsif 2>2 thenn #nelsen #nendn#if後置nputs "if後置" if 2 > 1n#unlessnunless 2 > 1 thenn #nelsen #nendn#casencase 1+1nwhen 2 thenn #nwhen 3 thenn #nelsen #nendn##循環控制n#whilenwhile 1>2n #nendn#untilnuntil 1<2n #nendn#fornfor i in (1..3)n #nendn#foreach的另一種寫法n(1..3).each do |i|n #可以用break和next控制,next相當於其他語言的continuenendn##面向對象nmodule MyModule#定義模塊n #定義類n class MyClass#類名首字母大寫n attr_accessor :myAttr#定義實例變數n def initializen @myAttr2 = "@定義的實例變數"n endn public#訪問控制級別public/protected/privaten def myMethod#定義實例方法n puts "在實例方法中輸出" + myAttr + @myAttr2n endn endn #繼承n class MySubClass < MyClassn endn #定義模塊方法n def moduleMethodn puts "MyModule的模塊方法"n endnend#模塊定義的endn#使用nmyClass = MyModule::MyClass.new#實例化對象nmyClass.myAttr = "實例變數的值"#為實例變數賦值nmyClass.myMethod#調用實例方法n#動態添加方法ndef myClass.newMethodn puts "動態添加的方法"nendnmyClass.newMethodn#載入另一個文件中聲明的模塊中的類nload ruby_another_module.rbnanotherClass = AnotherModule::AnotherClass.new#另一個文件中聲明的對象nanotherClass.print#調用其方法n#混入nclass UseMixinn include MyModulen extend MyModulenendnUseMixin.new.moduleMethod#include語句的作用,成為類的實例方法nUseMixin.moduleMethod#extend語句的作用,成為類的類方法n##代碼段ndef blockMethod#調用代碼段的方法,其中yield表示運行代碼段n yieldnendnblockMethod {puts "匿名代碼段"}n#帶參數的代碼段ndef blockMethodWithParam(arg, &b)#定義顯式使用代碼段的函數n b.call argnendnblock = Proc.new{|x| puts x}#定義非匿名代碼段nblockMethodWithParam("非匿名代碼段", &block)#使用非匿名代碼段nblockMethodWithParam("也可以這樣使用"){|x| puts x}n##異常處理nbeginn #正常代碼運行的地方nrescue Error#相當於其他語言的catchn #進行一些調整n retry#重新嘗試執行nensuren #相當於其他語言的finally,無論如何都會運行的地方nendnn##基本類型n#整數na=123_456#可以加下劃線nb=0b101010#二進位nc=0123#八進位nd=0xaa#十六進位ne=?a#ascii碼nputs dn#浮點數略n#字元串nstr = "hello, world"nstr = %{你好, "world"}#方便含有引號的內容nstr[0] = "我"nputs strn#符號略n#區間n(1..3).each{|a| puts a}n#數組n[1,2,3].each{|a| puts a}n#字典nmap = {"鍵甲"=>"鍵甲的值", "鍵乙"=>"鍵乙的值"}nputs map["鍵甲"]n#正則表達式n"ab12cd".scan(/d/){|m| puts m}#正則表達式字面量nputs /d/.match("ab12cd")[0]#match方法n
推薦閱讀:
※什麼時候對 Ruby 感到絕望?
※可否有大神幫助解析NotoColorEmoji.ttf?
※如何讀文檔?
※量產型炮灰工程師
TAG:Ruby |