<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免费看| 亚洲熟妇无码八V在线播放| 国产亚洲精品2021自在线| 无码精品人妻一区二区三区免费| 1000部禁片黄的免费看| 在线观着免费观看国产黄| 亚洲伊人久久大香线蕉啊| 亚洲视频在线观看免费| 亚洲精品美女久久久久99| 免费大片av手机看片| 国产又大又黑又粗免费视频| 国产AV旡码专区亚洲AV苍井空| 久久w5ww成w人免费| 中文字幕亚洲免费无线观看日本| 伊人免费在线观看高清版| 亚洲午夜久久久久妓女影院| 一级特黄特色的免费大片视频| 亚洲国产成人精品女人久久久| 国产精品视频全国免费观看| 亚洲精品无码Av人在线观看国产| 国产精品免费AV片在线观看| 亚洲天堂一区在线| 日本免费人成黄页网观看视频| 四虎精品成人免费视频| 亚洲国产精品福利片在线观看| 在线免费观看亚洲| 亚洲成在人线在线播放无码| 国产精品亚洲产品一区二区三区 | 亚洲va久久久噜噜噜久久男同| 国产高清不卡免费视频| 亚洲13又紧又嫩又水多| 国产精品免费看久久久无码| 国产成人无码区免费内射一片色欲| 亚洲精品综合久久中文字幕| 日本免费v片一二三区| 国产午夜无码片免费| 亚洲色无码国产精品网站可下载| 亚洲无码黄色网址| 91免费资源网站入口| 国产VA免费精品高清在线| 亚洲国产精品成人综合久久久 |