ruby-菜鳥入門チュートリアル

8550 ワード

rubyを開発するツールAtom for mac
RubyプログラムをAtomで実行すると、package Scriptをインストールし、Atomを再起動してからCommand + Iで実行する.必ず再起動してください.
1. Click on Packages --> Commmand Palette --> Select Toggle.
2. Type Install Packages and Themes.
3. Search for Script and then install it.
4. Press Command + I to run the code (on Mac)

創造者:松本行弘
ルビーは「プログラマーの親友」です.便利なプログラマー、性能はJavaが良くありません
オープンソースで、Web上では無料で提供されていますが、ライセンスが必要です.汎用的で解釈的なプログラミング言語.本格的なオブジェクト向けプログラミング言語.汎用ゲートウェイインタフェース(CGI)スクリプトの作成に使用できます.ハイパーテキストタグ言語(HTML)に埋め込むことができます.開発に使用できるインターネットおよびIntranetアプリケーション.WindowsおよびPOSIX環境にインストールできます.DB 2、MySQL、Oracle、Sybaseに簡単に接続できます.
1.Rubyプログラムのコンパイル/実行
puts "Hello World!";

2.Ruby中国語コード
puts "  ,  !";
  : invalid multibyte char (US-ASCII) 

RubyはASCIIコードを使ってソースコードを読みます.中国語で文字化けの解決方法が現れます:#!/usr/bin/ruby-w#--coding:UTF-8--puts「こんにちは、世界!」
3.Rubyのコマンドラインオプション
4.ルビー文法
すべてのRubyファイル拡張子は.rb
Rubyプログラムの空白
a + b      a+b (        )
a +b      a(+b) (        )

Rubyプログラムの行末
Rubyはセミコロンと改行を文の末尾に解釈する.しかし、Rubyが行の最後に演算子、例えば+-、または\に遭遇した場合、それらは文の継続を表す.
Ruby識別子
識別子は、変数、定数、メソッドの名前です.Ruby識別子は大文字と小文字に敏感である.これは、RamおよびRAMRubyにおいて2つの異なる識別子であることを意味する.
リザーブワード略
RubyのHere Document
「Here Document」とは、複数行の文字列を作成することです.<<以降では、文字列を終了する文字列または識別子を指定できます.現在の行の後、終了文字までのすべての行が文字列の値です.
print <

Ruby BEGIN文
puts "    Ruby   " 
BEGIN { 
    puts "    Ruby   "
}
//    "    Ruby   "

Ruby END文
最終実行
Rubyコメント
1行コメント:
#    

複数行コメント:
=begin
    
    
=end

データ型Rubyは、Number,String,Ranges,Symbolsのデータ型、およびtruefalse、およびnilのいくつかの特殊な値をサポートします.
Number数値タイプ
  • 整形Integer整形は2種類に分けられ、31位以内のFixnumBignumを超える
  • となっている.
  • 浮動小数点型浮動小数点数はFloat類の対象である.

  • えんざんさぎょう
    プラスマイナス乗除指数:+-*/**
    文字列タイプ
    Ruby文字列は、単純に8バイトのシーケンスである、Stringクラスのオブジェクトである.二重引用符マークの文字列は逆斜線記号の置換と使用を許可する、単引用符マークの文字列は置換を許可せず、\\\'の2つの逆斜線記号のみを使用することを許可する.
    エスケープ、\Ruby式
    #{expr}
    i.e. 
    puts "   : #{24*60*60}"
    //    :    : 86400
    

    文字列を追加できます.
    name = "Liao Maer"
    puts name + ", Loving"
    // -> Liao Maer Loving
    

    はいれつ
    配列の字面量は、[]にカンマで区切る定義され、rangeの定義がサポートする.
  • 配列は[]インデックスを介して
  • にアクセスする.
  • 賦値操作により挿入、削除、置換要素
  • は、+号を介して要素を結合および削除し、集合を新しい集合として
  • が現れる.
  • <<号により元データに要素
  • を追加する.
  • *号重複配列要素
  • を通過
  • は、および&のシンボルによって、並列および交差動作(注意順序)
  • を行う.
    i.e.
    ary = ["fred", 10, 10.2, "this can be help", "last element"]
    ary.each do |i|
        puts i
    end
    

    ハッシュ・タイプ
    ハッシュは、一連のキー/値ペアをカッコ内に配置し、キーと値の間にカンマとシーケンス=>で区切られます.末尾のカンマは無視されます.
    hashs = colors = {"red"=> 0xf00, "green"=>0x0f0, "blue"=>0x00f}
    
    colors.each do |key, value|
       print key, " is ", value, "
    " end

    範囲タイプ
    1つの範囲は1つの区間を表す.範囲(1.3)は1,2,3範囲(1...3)は1,2を表す
    (10..15).each do |n|
        print n, ' '
    end
    

    クラスとオブジェクト
    Rubyは完璧なオブジェクト向けのプログラミング言語です.
  • データパッケージ
  • データ抽象
  • 多態性
  • 継承
  • クラスの定義:
    class Customer
    end
    

    キーワードendを使用してクラスを終了します.クラス内のすべてのデータメンバーはクラス定義とendキーワードの間にある.
    Rubyクラスの変数
  • ローカル変数メソッドで定義された変数で、ローカル変数はメソッド外では使用できません.局所変数は または_で始まる.
  • インスタンス変数インスタンス変数は、任意の特定のインスタンスまたはオブジェクトにわたる方法で使用することができる.インスタンス変数は、オブジェクトからオブジェクトへの変更が可能です.インスタンス変数は、変数名の前に符号を置く(@).
  • クラス変数クラス変数は、異なるオブジェクト間で使用することができる.クラス変数はクラスに属し、クラスの属性です.クラス変数は、変数名の前にシンボルを配置します(@@).
  • グローバル変数クラス変数はクラス間で使用できない.クラス間で使用できる変数を指定したい場合は、グローバル変数を定義する必要があります.グローバル変数は常にドル記号($)で始まる.
  • i.e.
    class Customer
        @@no_of_customers=0
    end
    

    Customerのinstanceを作成するたびに@no_of_Customers+1 Customerクラスのインスタンスを統計できます
    Rubyでnewメソッドを使用してオブジェクトを作成する
    cust1 = Customer. new  // .     space     
    

    Rubyオブジェクトを作成するためのカスタムメソッド

    Rubyクラスのメンバー関数
    rubyでは、関数を方法と呼ぶ.クラスの各メソッドは、キーワードdefで開始する、メソッド名に続く.メソッド名は常に小文字で始まる.rubyでは、キーワードendでメソッドを終了することができる.
    class Sample
      def hello
        puts "hello, world"
      end
    end
    
    sample = Sample.new
    sample.hello
    

    Rubyクラスのケース
    class Customer
      @@no_of_customers=0
      def initialize(id, name, addr)
        @cust_id = id
        @cust_name = name
        @cust_addr = addr
      end
      def display_details()
        puts "Customer id #@cust_id"
        puts "Customer name #{@cust_name}"
        puts "Customer addr #{@cust_addr}"
      end
      def total_no_of_customeers()
        @@no_of_customers += 1
        puts "Total number of customers:#{@@no_of_customers}"
      end
    end
    
    cust1 = Customer.new("1", "jack", "beijing")
    puts cust1.display_details  //     `()`,     ,   ,      ,    
    

    Ruby変数
    変数は、任意のプログラムで使用することができる任意のデータを保持する格納文の位置である.Rubyは5種類の変数をサポートする.
  • は、一般に小文字、下線で始まる.変数
  • $先頭、グローバル変数
  • @先頭、インスタンス変数
  • @@先頭、クラス変数、クラス変数は継承チェーン全体にわたって貢献されたばかりの
  • 大文字先頭:定数
  • Rubyグローバル変数
    グローバル変数は$で始まる.初期化されていないグローバル変数の値はnilです.永続-wのオプションである後、警告が発生する.
    Rubyのインスタンス変数
    インスタンス変数は@で始まる
    Rubyのクラス変数
    クラス変数は@@で始まる、メソッドで使用するには初期化が必要である.初期化されていないクラス変数を参照するとエラーが発生します.クラス変数は、彼のクラスまたはモジュールのサブクラスまたはアルファベットの速い中で共有して使用することができる.-wのオプションを使用すると、クラス変数のリロードに警告が発生する.
    ブロック
  • ブロックは、大量のコードから構成される.
  • は、ブロックに名前を付ける必要があります.
  • ブロックのコードは、常に括弧{}内に含まれる.
  • ブロックは、常に同じ名前の関数から呼び出される.これは、ブロック名がtestの場合、関数testを使用してブロックを呼び出すことを意味します.
  • は、yield文を使用してブロックを呼び出すことができる.
    block_name{ 
        statement1 
        statement2 
        ..........
    }
    

  • yield
    ie1.
    def test
    puts "in test method"
    yield
    puts "you back to test method"
    yield
    end
    
    test {puts "you are in block"}
    

    result:
    in test method
    you are in block
    you back to test method
    you are in block
    

    ie2.
    def test1
       yield (5)
       puts "  test    "
       yield (100)
    end
    
    test1{
        |i| puts "you are in #{i} block" 
    }
    

    result:
    you are in 5 block
      test    
    you are in 100 block
    

    ブロックとメソッド
    ブロックは、通常、yield文を使用して同じ名前の方法から呼び出される.
    def test 
        yield
    end
    test{ puts "Hello world"}
    

    メソッドの最後のパラメータの前に&がある場合、メソッドにブロックを渡すことができ、このブロックを最後のパラメータに割り当てることができます.パラメータリストに*&が同時に表示される場合は、&を後ろに配置します.
    def test(&block) 
        block.call
    end
    test { puts "Hello World!"}
    #  : Hello World!
    

    BEGINとENDブロック
    Rubyソースファイルは、ファイルがロードされたときに実行されるコードブロック(BEGINブロック)と、プログラムの実行が完了した後に実行されるコードブロック(ENDブロック)とを宣言することができる.
    Rubyのモジュール
    モジュール(Module)は、方法、クラス、定数を組み合わせる方法である.
  • モジュールは、名前の競合を回避するために命名された
  • を提供する.
  • モジュールはmixin装置
  • を実現する.
  • モジュールはインスタンス化できない
  • モジュールにはサブクラスがない
  • モジュールは、他のモジュールによってのみ定義される
  • 例:
    module Trig 
        PI = 3.141592654 
        def Trig.sin(x) 
        # .. end 
        def Trig.cos(x) 
        # .. end
    end
    

    クラスメソッドのように、モジュールでメソッドを定義する場合は、モジュール名の後にポイント番号、ポイント番号の後にメソッド名を付けるように指定できます.
    Rubyのrequire文require文は、CおよびC++include文、およびJavaimport文と類似している.
    Ruby require文を使用してモジュールファイルをロード
    ファイル参照:
    $LOAD_PATH << '.'  #  ruby                  
    require 'trig.rb' 
    require 'moral'  # .rb      
    y = Trig.sin(Trig::PI/4)
    wrongdoing = Moral.sin(Moral::VERY_BAD)