루비 20 분 체험

5193 단어 Ruby
20 분 체험 루비: http://www.ruby-lang.org/zh_cn/documentation/quickstart/
설치: 세 가지 방식: 소스 코드;rubyinstaller.exe;ruby.exe
실행: cmd - > irb
-------------------------
간단 한 예제:
1、
>puts “Hello World”
Hello World
=>nil          //nil 은 Ruby 의 빈 값 입 니 다. puts 명령 은 nil 로 돌아 갑 니 다.
 
2、
>3*2
=>6
>Math.sqrt(9)     //Math 는 자체 데이터 모듈 입 니 다. 모듈: 기능 이 같은 함수 가 같은 이름 아래 에 있 습 니 다.
=>3.0
>a = 3**2    //**차방변수 a 에 값 을 부여 합 니 다.
 
=>9
3、
정의 함수
>def h         //정의 함수
>puts "Hello World"
>end           //함수 끝
=>nil
함 수 를 호출 하여 h 또는 h () 를 직접 입력 합 니 다.
------------
>def h(name)       //인삼 을 첨가 하 다
>puts "Hello #{name}!"
>end
------------
>def h(name = "defaultName")   //기본 값 추가
>puts "Hello #{name.capitalize}!"  //입력 한 문자열 값 과 이니셜 대문자 사용 하기
>end
호출: h "World" 또는: h           
------------
4、
정의 클래스
class Greeter
    def initialize(name = "World")
        @name = name    //@name 은 인 스 턴 스 변수 입 니 다.
    end
    def say_hi
        puts "Hello #{@name}!"
    end
    def say_bye
        puts "Bye #{@name}!come back soon!"
    def
end
사용 클래스:
>Greeter.new("Pat")
=>#
>g.say_hi
--------
>g.name   //compile error 대상, 속성 숨 기기
--------
>Greeter.instance_methods / / 모든 방법 을 인쇄 합 니 다. 부모 클래스 를 계승 하 는 경우 가 많 습 니 다. 계승 클래스 를 원 하지 않 는 다 면 인쇄 합 니 다.
>Greeter.instance_methods(false)
--------
respond_to 는 내 장 된 함수 로 대상 이 지정 한 방법 에 반응 하 는 지 테스트 하 는 데 사 용 됩 니 다.
>g.respond_to?("name") / / 없 음
=>false
>g.respond_to?("say_hi")
=>true
>g.respond_to?("to_s") //to_s 는 내장 함수
=>true
--------
인쇄 및 클래스 변경, ruby 는 속성 명 을 가 져 올 수 있 습 니 다.
>class Greeter    //클래스 열기
>    attr_accessor :name  //attr 통과 하기accessor 는 속성 을 바 꿉 니 다. 두 가지 방법 을 도입 합 니 다. name (변 수 를 읽 습 니 다.                          //의 값name = 방법 (변수 에 값 부여)
>end
>g = Greeter.new("kity")
>g.respond_to?("name")
=>true
>g.respond_to?("name=")
=>true
>g.name="kity2"
>g.say_hi
=>Hello kity2!
 ------------------------
큰 라운드 코드...
#!/usr/bin/env ruby

class MegaGreeter
    attr_accessor : names

    # Create the object
    def initialize(names = "World")
        @name = names
    end

    # Say hi to everybody
    def say_hi
       if @names.nil?
            puts "....."
       elsif @names.repond_to?("each")
           # @names is a list of some kind,iterate!
           @names.each do |name|
               puts "Hello #{name}!"
            end
       else
            puts "Hello #{@names}!"
       end
    end

    # Say bye to everybody
    def say_bye
        if @names.nil?
            puts "......"
        elsif @names.respond_to?("join")
            # Join the list elements with commas
            puts "Goodbye #{@names.join(", ")}. Come back soon!"
        else
            puts "Goodbye #{@names}. Come back soon!"
        end
    end

end



if __FILE__ == $0
    mg = MegaGreeter.new
    mg.say_hi
    mg.say_bye

    # Change name to be "Zeke"
    mg.names = "Zeke"
    mg.say_hi
    mg.say_bye

    # Change the name to an array of names
    mg.names = ["a", "b", "c"]
    mg.say_hi
    mg.say_bye

    @Change to nil
    mg.names = nil
    mg.say_hi
    mg.say_bye
end

 저장 파일: ri20min. rb, 그리고 실행: ruby ri20min. rb
위의 코드 에 서 는 each 함 수 를 사용 합 니 다. 코드 블록 을 받 아들 일 수 있 는 함수 입 니 다. 모든 요 소 를 교체 할 때 받 아들 일 코드 블록 을 호출 합 니 다.코드 블록 은 이름 이 필요 없 는 함수 같 습 니 다.
@names.each do |name|  //   
    puts "#{name}"

 -----------------------
부호 블록
코드 블록 은 교체 목록 보다 더 번 거 로 운 작업 을 처리 하 는 데 사 용 됩 니 다. 마 운 트 해제 나 실행 오 류 를 자동 으로 설치 할 수 있 습 니 다.진정 으로 사용자 가 안심 하고 안심 할 수 있 도록 하 다.
@ names. respond 사용 하기to?('join') 이 스타일 을 '오리 형' 이 라 고 부 릅 니 다. - 얘 는 걸 으 면 오리 같 고 울 면 오리 같 아 요.
-------------------------
if __FILE__ == $0

 __FILE__현재 실행 중인 스 크 립 트 의 파일 이름 을 저장 합 니 다. $0 은 스 크 립 트 를 시작 하 는 이름 입 니 다.위의 의미: 실행 중인 스 크 립 트 가 스 크 립 트 를 시작 할 때 다음 코드 를 실행 합 니 다.스 크 립 트 가 호출 될 때 사용 되 는 경우 이 내용 을 실행 하지 않 아 도 된다 는 장점 이 있 습 니 다.
--------------
도입부: 더 깊 은 개념 점 코드 블록 / yield / 모듈 / mixins 등
 

좋은 웹페이지 즐겨찾기