Latest web development tutorials

루비 방법

루비 방법은 다른 프로그래밍 언어 기능과 유사하다. 하나의 단위로 하나 이상의 중복 문을 묶기위한 루비 방법.

메소드 이름은 소문자로 시작해야한다. 은 메소드 이름의 시작으로 대문자 인 경우, 루비 아마도 잘못 호출 분석 결과 상수로서 사용된다.

메소드를 호출하면, 그렇지 않으면 정의되어야하기 전에, 루비는 정의되지 않은 메서드 호출 예외를 생성합니다.

문법

def method_name [( [arg [= default]]...[, * arg [, &expr ]])]
   expr..
end

다음과 같이 그래서, 당신은 간단한 방법을 정의 할 수 있습니다 :

def method_name 
   expr..
end

다음과 같이, 매개 변수를 허용하는 방법을 정의 할 수 있습니다 :

def method_name (var1, var2)
   expr..
end

만약 파라미터의 디폴트 값을 설정할 수 있으며, 파라미터는 디폴트 값을 전달할 필요가 없다 메소드 호출하는 경우 :

def method_name (var1=value1, var2=value2)
   expr..
end

당신이 메서드를 호출 할 때 다음과 같이 단지, 메소드 이름을 사용합니다 :

method_name

이 매개 변수를 사용하여 메서드를 호출 할 때, 예를 들어, 메소드 이름을 작성하는 경우에는, 당신이 가지고있는 매개 변수를 취합니다 :

method_name 25, 30

매개 변수의 가장 큰 단점을 이용하는 방법은 메소드를 호출 할 때 파라미터의 개수를 기억할 필요가있다. 예를 들어, 두 개의 인수를 전달하는 세 개의 매개 변수 방법을 허용 한 경우, 루비에 오류가 표시됩니다.

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

def test(a1="Ruby", a2="Perl")
   puts "编程语言为 #{a1}"
   puts "编程语言为 #{a2}"
end
test "C", "C++"
test

위의 예제 출력은 실행

编程语言为 C
编程语言为 C++
编程语言为 Ruby
编程语言为 Perl

메소드의 반환 값

루비는 각각의 방법은 기본 값을 반환합니다. 이 값은 마지막 문에 의해 반환 된 값입니다. 예를 들면 :

def test
   i = 100
   j = 10
   k = 0
end

이 메소드를 호출 할 때 변수 k의 최종 선언을 반환합니다.

루비return 문

return문에 루비는 루비 방법에서 하나 이상의 값을 반환하는 데 사용됩니다.

문법

return [expr[`,' expr...]]

두 개 이상의 표현이 주어지면이 값을 포함하는 배열이 반환 값이됩니다. 어떤 표현이 지정되어 있지 않은 경우는, 전무는 반환 값이됩니다.

return

或

return 12

或

return 1,2,3

다음 예를 고려하십시오

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

def test
   i = 100
   j = 200
   k = 300
return i, j, k
end
var = test
puts var

위의 예제 출력은 실행

100
200
300

인수의 변수 번호

의 당신이이 메서드를 호출 할 때, 당신은 또한 두 개의 매개 변수를 전달해야, 2 개의 인수를 취하는 방법을 선언한다고 가정 해 봅시다.

그러나 루비는 매개 변수의 변수 번호를 선언 할 수 있습니다. 이제 다음 예를 보자 :

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

def sample (*test)
   puts "参数个数为 #{test.length}"
   for i in 0...test.length
      puts "参数值为 #{test[i]}"
   end
end
sample "Zara", "6", "F"
sample "Mac", "36", "M", "MCA"

이 코드는 샘플의 방법은, 파라미터 테스트를 허용 선언. 그러나이 매개 변수는 변수 매개 변수입니다. 이 매개 변수는 변수의 상이한 수와 함께 제공 될 수 있다는 것을 의미한다. 위의 예제 출력은 실행

参数个数为 3
参数值为 Zara
参数值为 6
参数值为 F
参数个数为 4
参数值为 Mac
参数值为 36
参数值为 M
参数值为 MCA

클래스 메소드

때 외부 클래스의 기본에 정의 된 방법 방법은개인 표시했습니다.메소드는 클래스에 정의 된 경우, 상기 디폴트 공용으로 표시된다.

가시성과개인태그의 기본 방법은공공또는민간에서모듈 (모듈)을 통해 변경 될 수있습니다.

당신은 클래스 메소드에 액세스하려는 경우, 먼저 클래스를 인스턴스화해야합니다. 그리고, 물체를 사용하여 클래스의 구성원을 액세스 할 수있다.

루비는 인스턴스화 방법없이 액세스 할 수있는 방법을 제공합니다. 의 선언과 클래스 메소드에 액세스하는 방법을 보자 :

class Accounts
   def reading_charge
   end
   def Accounts.return_date
   end
end

우리는 이미 어떻게 방법 RETURN_DATE 문을 알고있다. 이 선언에 도트 후 메소드 이름 뒤에 점 다음에 클래스 이름, 후입니다. 다음과 같이 직접 클래스 메소드에 액세스 할 수 있습니다 :

Accounts.return_date

이 방법에 액세스하려면 개체 클래스 계정을 만들 필요가 없습니다.

루비별명 문

이 문은 별칭에서 방법 또는 전역 변수로 사용된다. 별칭은 메소드 본문 내에서 정의 될 수 없다. 상기 방법은 무시하더라도 별명 방법은 또한, 상기 방법의 현재의 정의를 유지한다.

별명에서 전역 변수 ($ 1, $ 2, ...)의 수는 금지되어 있습니다. 내장 된 글로벌 변수하면 심각한 문제가 발생할 수 있습니다 다시 작성합니다.

문법

alias 方法名 方法名
alias 全局变量 全局变量

alias foo bar
alias $MATCH $&

여기서 우리는 foo는이 $ & $의 MATCH에 대한 별명을 정의하는 바의 별칭을 정의했습니다.

루비미확정 문

이 문은 메소드 정의를 취소하는 데 사용됩니다.미확정는메서드 본문 내에 표시 할 수 없습니다.

미확정별명 사용하여 클래스 인터페이스는 상위 클래스에서 독립적으로 변형하지만, 그 자신의 내부 메소드를 호출 할 때, 그 프로그램을 훼손 수도 있습니다 수있다.

문법

undef 方法名

다음의 예는 명명 된바있어서정의 취소 :

undef bar