<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://m.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

    搜索

    積分與排名

    最新評論

    主站蜘蛛池模板: 亚洲AV女人18毛片水真多| 亚洲AV无码精品色午夜果冻不卡 | 日韩少妇内射免费播放| 成人免费午夜视频| 久久亚洲精品国产亚洲老地址| 国产免费女女脚奴视频网| 亚洲黄色在线观看| 中文字幕av无码无卡免费| 亚洲av日韩av综合| 免费无码又爽又高潮视频| 在线播放亚洲精品| 亚洲人成电影在线播放| 日本道免费精品一区二区| 久久久久亚洲av无码专区导航| 最近中文字幕国语免费完整| 国产成人精品日本亚洲网址| 国产无遮挡吃胸膜奶免费看| 免费人成网站永久| 亚洲Av无码精品色午夜| 亚洲成人在线免费观看| 精品久久亚洲中文无码| 国产aa免费视频| 中国一级特黄的片子免费 | 久久福利青草精品资源站免费| 内射少妇36P亚洲区| 成年人免费视频观看| 成年网站免费入口在线观看| 亚洲成av人影院| 成年女性特黄午夜视频免费看| 免费无遮挡无码视频在线观看 | 美女裸免费观看网站| 亚洲精品无码乱码成人| 黄色片在线免费观看| 老牛精品亚洲成av人片| 日韩亚洲欧洲在线com91tv| 美女被免费喷白浆视频| 在线精品自拍亚洲第一区| 91在线亚洲精品专区| 国产精品四虎在线观看免费| 无码囯产精品一区二区免费 | 亚洲精品一级无码鲁丝片|