ruby筆記

      
                                                                                                                                        初學者Ruby筆記
1 . 在ruby中,你所操作的一切都是對象,操作的結果也是對象;Tcl操作的結果都是String類型. tcl不支持.net中的形如int , double ,char等等類型,唯一支持的就是string類型
2 . 類的定義要在class..end之間,類名必須以大寫字母開始,也就是說類名要是個常量.
3.  若某個類已經被定義過,此時又用相同的類名進行類定義的話,就意味着對原有的類的定義進行追加
 例如: class Test
   def  test
    puts "test"
   end
    end
  class Test
   def  test1
    puts "test1"
   end
  end
 對於Test類的方法,先定義test後定義test1,兩者都可用.
4.  特殊變量可以用{}來求值,如#{},全局變量以$開頭,類變量以@@開頭,且必須初始化,實例變量以@開頭。
5. " <=>" 方法通常意思爲比較,返回值爲-1,0或1分別表示小於,等於和大於. 如: 3<=>4 返回 -1,4<=>3返回 1
6. 方法名應該以小寫字母開始,如果你使用大寫字母開始,Ruby解釋器會認爲它是一個常量,這樣可能會帶來名稱解析錯誤
 如: def   Test
 p   "test"
         end
 運行   p Test ,會報 uninitialized constant Xgg.
7.一般的編寫習慣是如果方法含有參數,那麼就使用圓括號將參數括起來,否則不需要圓括號.
8.當定義一個方法後,可以用undef_method取消一個方法的定義,貌似運用的不多。
 class  Test
  def test
     p "test2"
  end
 end
 obj1 = Test.new
 obj1.test
 #會輸出"test2"
 class  Test
   undef_method(:test)
 end
 obj1.test
 #會提示方法沒有被定義
9.繼承,用<表示 ,ruby語言只支持單繼承,每一個類都只能有一個直接父類。
 class Student < Person
  def initialize(name, gender, age, school)
   @name = name
   @gender = gender
   @age = age
   @school = school
  end
 end

10.特殊方法是指某實例所特有的方法。
 class << obj
  ……
 end
 obj是一個具體的對象實例,class << 代表它的特殊類
11.interator迭代器。。 
 6.times{|i| p i} 求出0-6之間的數
 2.times  {   
  p defined?(num)
  num =10
  p   num
        }
 #會輸出 nil  10  nil  10
 ["ab","ced"].each {|entity| p entity}
12. yield
    def callBlock
       yield
    yield
    end
 callBlock {p "In the block"}
 #輸出: In the block   In the block
14.ruby中求小數 如:format("%0.2f",11.329)-->11.33       
 ruby按精度保留小數
 有一個round函數,用起來非常方便:
 >> 2.3465.round    "\n 換行"
 => 2
 >> 2.3465.round(2)
 => 2.35
 >> 2.3465.round(3)
 => 2.347
15.對象的initialize
  class Song
    def  initialize(name, artist, duration)
 @name =name
 @artist = artist
 @duration =duration
    end
  end 
  song = Song.new("Bicy","Fleck",260)
  song.inspect(inspect方法返回一個文字表徵的字符串)
16.可以直接引入Math對象  include Math  -16.abs
17.單行註釋用#,多行註釋用 =begin  ****  =end,也可以用多個# 
18.文件讀取文件讀取文件讀取文件讀取
  filename="C:\\Users\\Administrator\\Desktop\\ruby\\one.txt"
 file=open(filename)
 text=file.read
 print text
 file.close 

 filename=ARGV[0]
 file=open(filename)
 while text=file.gets   
  print    text
 end
 file.clos
19.類方法引用
 類.方法      類::方法
20.‘ ’與""的區別
 moji="字符串"
 str="這也是#{moji}"
 p str
 str1='這也是#{moji}'
 p str1
21.設置字符編碼
  before_filter :set_charset
 def set_charset
 @headers["Content-Type"] = "text/html; charset=utf-8"
 end

 
 
 
 

 

發佈了21 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章