<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    gr8vyguy@Blogjava

    Ruby學習筆記1,第一章和第二章

    第一章

    交互式實驗環境啟動命令 irb

    文件加載的命令 load "filename.rb"

    運行一個文件 ruby filename.rb, ruby -w 激活warning

    查看幫助文檔命令 ri class.method

    第二章

    注釋符號 #

    Bool值 
       false和nil為假,其他都為真

    實例化
      object = Clazz.new(arguments),new是繼承自Object的一個static方法

    方法調用
      "str".length        =>   3                  不一定要括號()
      "str".index("r")   =>   2                  index從零開始計數
      -1942.abs        =>   1942            整數也是對象,Ruby沒有的primitive數據,都是對象

    函數定義
      def add(x, y)
         return x + y
      end
    函數的最后一個表達式即是返回值,所以return x + y也可以寫成x + y.

    變量名
      全局               $global
      實例(field)      @field
      類(static)         @@class_field
      局部               小寫字符和下劃線開頭

    字符串
      "Good night, #{name}"    <=>  "Good night, %s", name
      'Good night, #$name'     如果name是全局變量
      "Good night, #@name"    如果name是實例變量

    正則表達式
      Pattern以/ /頭尾, match操作符 =~
      \s       單個空格字符
      \d       單個數字
      \w      單詞中的字符
      .         單個字符
     (|)       兩則取一
     "Java python c#" =~ /python/ 返回5
     "Java python c#".sub(/c#/, 'ruby') 返回Java python ruby
     "c# Java c#".gsub(/c#/, 'Java') 返回 Java Java Java

    列表
      a = [1, "cat", 3.14]
      a[0] = nil
      a = %w{ ant bee cat } <=> a = [ "ant", "bee", "cat" ]

    Hash
      numbers = { "one" => 1, "two" => 2, "three" => 3}
    默認的不存在鍵返回值是nil,可以改變
      hist = Hash.new(0)
      hist["key1"] => 0
      hist["key1"] = hist["key1"] + 1
      hist["key1"] => 1

    輸出
      puts        自動加上換行符
      print       沒有換行符
      printf("Number: %5.2f,\nString: %s\n", 1.23, "hello")

    輸入
      gets        輸入一行,帶換行符

    控制結構
      if <condition>                           while <condition>
          <statements>                            <statements>            
      elsif <condition>                       end
          <statements>
      else
          <statements>
      end

      puts "Danger, Will Robinson" if radiation > 3000
    <=>
      if radiation > 3000
          puts "Danger, Will Robinson"
      end

      square = 2
      square = square * square while square < 1000     # 照樣是先判斷條件,為true,運行循環

    Block是一段匿名的代碼或者說是一個匿名的函數,可以用yield調用
      def call_block
        yield("hello", 99)  # 調用block
      end
      call_block { |str, num| puts str + num } # 定義block

    需要Block的函數,類似于函數式語言中的High Order函數,他的一個參數是函數。
      animals = %w{ ant bee cat }
      animals.each { |animal| print animal, " " }
      5.times { print '+' }
      3.upto(6) { |i| print i }
      ('a'..'e').each { |c| print c }

    并行賦值
      x, y = y, x   # 交換了x和y的值

    例子: 計算Fibonacci數

    def fib_up_to(max)
      i1, i2 
    = 11
      
    while i1 <= max
        
    yield i1
        i1, i2 
    = i2, i1 + i2    
      end
    end

    fib_up_to(
    1000) { |f| print f, " " }

    判斷一變量名是否定義
      defined?(name)

    轉載請保留http://www.tkk7.com/xilaile/archive/2007/05/06/115497.html

    posted on 2007-05-05 21:54 gr8vyguy 閱讀(435) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2007年5月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統計

    公告

  • 轉載請注明出處.
  • msn: gr8vyguy at live.com
  • 常用鏈接

    留言簿(9)

    隨筆分類(68)

    隨筆檔案(80)

    文章分類(1)

    My Open Source Projects

    搜索

    積分與排名

    最新評論

    主站蜘蛛池模板: 日本免费高清视频| 久久久精品国产亚洲成人满18免费网站| 国产一区二区三区免费| 亚洲色WWW成人永久网址| 99久久免费国产特黄| 国产亚洲综合网曝门系列| a级黄色毛片免费播放视频| 亚洲国产另类久久久精品| 日韩电影免费在线观看中文字幕| 久久精品国产亚洲AV麻豆王友容 | 精品久久香蕉国产线看观看亚洲| xxxx日本在线播放免费不卡| 亚洲午夜国产精品无码| 精品国产一区二区三区免费| 亚洲资源在线观看| 国产一精品一AV一免费孕妇| 青青青国产在线观看免费网站| 在线亚洲午夜理论AV大片| 中文在线观看免费网站| 日韩免费无码一区二区视频| 亚洲AV无码一区二区三区鸳鸯影院| 免费在线观看中文字幕| 亚洲av片不卡无码久久| 欧洲美熟女乱又伦免费视频| 好先生在线观看免费播放| 亚洲 欧洲 视频 伦小说| 精品国产免费观看| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 亚洲精品白浆高清久久久久久| 免费a级毛片无码a∨免费软件| 亚洲狠狠久久综合一区77777| 91免费精品国自产拍在线不卡| 国产一区二区三区亚洲综合| 国产日韩亚洲大尺度高清| 国产福利视精品永久免费| 国产亚洲视频在线观看| 亚洲第一精品福利| 国产精品公开免费视频| 久久久99精品免费观看| 亚洲jizzjizz少妇| 亚洲av色影在线|