學不同語言,常將它們的基礎語法搞混,例如if后面有沒有(),后面是then還是:還是{,結尾是end還是}。
這種事情毫無技術含量又毫無樂趣可言,但極大地影響流暢度,所以這次再看ruby語法,決定把基礎語法記下來,方便以后查看。
代碼放到了這里,目前只有ruby,待以后用別的語言時再陸續添加。
內容如下,都是最基礎的用法,需要時一看就明白。
#參考:《Ruby完全自學手冊》第三章、第四章 #常量大寫字母開頭,變量小寫字母開頭 CHANG_LIANG = 1 bian_liang = 2 bian_liang = "2"#弱類型 ##分支控制 #if if 2 > 1 then # elsif 2>2 then # else # end #if后置 puts "if后置" if 2 > 1 #unless unless 2 > 1 then # else # end #case case 1+1 when 2 then # when 3 then # else # end ##循環控制 #while while 1>2 # end #until until 1<2 # end #for for i in (1..3) # end #foreach的另一種寫法 (1..3).each do |i| #可以用break和next控制,next相當於其他語言的continue end ##面向對象 module MyModule#定義模塊 #定義類 class MyClass#類名首字母大寫 attr_accessor :myAttr#定義實例變量 def initialize @myAttr2 = "@定義的實例變量" end public#訪問控制級別public/protected/private def myMethod#定義實例方法 puts "在實例方法中輸出" + myAttr + @myAttr2 end end #繼承 class MySubClass < MyClass end #定義模塊方法 def moduleMethod puts "MyModule的模塊方法" end end#模塊定義的end #使用 myClass = MyModule::MyClass.new#實例化對象 myClass.myAttr = "實例變量的值"#為實例變量賦值 myClass.myMethod#調用實例方法 #動態添加方法 def myClass.newMethod puts "動態添加的方法" end myClass.newMethod #加載另一個文件中聲明的模塊中的類 load 'ruby_another_module.rb' anotherClass = AnotherModule::AnotherClass.new#另一個文件中聲明的對象 anotherClass.print#調用其方法 #混入 class UseMixin include MyModule extend MyModule end UseMixin.new.moduleMethod#include語句的作用,成為類的實例方法 UseMixin.moduleMethod#extend語句的作用,成為類的類方法 ##代碼段 def blockMethod#調用代碼段的方法,其中yield表示運行代碼段 yield end blockMethod {puts "匿名代碼段"} #帶參數的代碼段 def blockMethodWithParam(arg, &b)#定義顯式使用代碼段的函數 b.call arg end block = Proc.new{|x| puts x}#定義非匿名代碼段 blockMethodWithParam("非匿名代碼段", &block)#使用非匿名代碼段 blockMethodWithParam("也可以這樣使用"){|x| puts x} ##異常處理 begin #正常代碼運行的地方 rescue Error#相當於其他語言的catch #進行一些調整 retry#重新嘗試執行 ensure #相當於其他語言的finally,無論如何都會運行的地方 end ##基本類型 #整數 a=123_456#可以加下划線 b=0b101010#二進制 c=0123#八進制 d=0xaa#十六進制 e=?a#ascii碼 puts d #浮點數略 #字符串 str = "hello, world" str = %{你好, "world"}#方便含有引號的內容 str[0] = "我" puts str #符號略 #區間 (1..3).each{|a| puts a} #數組 [1,2,3].each{|a| puts a} #字典 map = {"鍵甲"=>"鍵甲的值", "鍵乙"=>"鍵乙的值"} puts map["鍵甲"] #正則表達式 "ab12cd".scan(/\d/){|m| puts m}#正則表達式字面量 puts /\d/.match("ab12cd")[0]#match方法