즉, 학습 프로그래밍 [Ruby & Rails 복습편]~본 파라미터와 임시 파라미터의 차이는 무엇입니까?

5689 단어 RubyRails
여전히 잘못된 문제로 고전하고 있다.
부드러운 선배들로부터'이 부분은 루비 복습을 해볼 수도 있겠다'는 조언을 받고 곧 루비 복습을 시작한다.
그리하여 곧
"어, 무슨 말인지 몰라서 무시하는 거잖아..."
장소가 나왔습니다.
Rails를 공부해서 잘 몰랐지만 이해를 깊게 하기 위해 다시 도전했습니다.
오늘 루비의 이 매개변수와 임시 매개변수를 작성해 보겠습니다.

매개변수 정보


우선 매개 변수를 복습해 봅시다.
매개 변수는 프로그램을 통해 방법 등에 전달할 수 있는 값이다.
변수 값의 범위는 고정되어 있는데, 이를 작용역이라고 부른다.
예를 들어 어떤 def~end에서 정의된 변수는 다른 방법을 직접 사용할 수 없다.
매개 변수를 사용하면 방법에서 방법 이외의 변수, 즉 작용역 이외의 변수를 사용할 수 있다.
그리고 매개 변수는 두 개의 임시 매개 변수가 있는데, 즉 호출 방법의 부분에서 기술한 이 매개 변수와 방법의 정의 부분에서 기술한 임시 매개 변수이다.
전선을 실제로 보세요.

 def multi(input)()内は仮引数
    puts input * input
   end

 puts "何か数字を入力してください"
   input = gets.to_i

 multi(input)()内は本引数
이런 느낌이에요.
코드를 읽고 처리하는 순서는 ③→②→①이다.
③와 ②에서 작용역을 정의하고 매개 변수를 ①에 전달한다.
하나의 요점은 임시 매개 변수의 이름이 이 매개 변수와 다를 수 있다는 것이다.
방금 코드의 절차는 다음과 같습니다.
③의 input 이 방법에서 ② gets.to_i 이 수치를 넣고 ①로 결과를 표시합니다
그렇습니다.
이것은 방정식과 마찬가지로 수치를 잠정적인 이름에 대입했기 때문에'x=a로서 x+1*10=a를 풀어주세요'라는 수학 문제와 같은 느낌입니다.
그래서 아까 코드는요.

def multi(number)
    puts number * number
    return number * number
  end

  puts "何か数字を入力してください"
  value = gets.to_i

  multi(value)
이렇게 하면 표시할 수 있다.

주의 범위


다음은 이런 코드로 생각해 보세요.
 def rename(name)
    name = "もそと#{name}"
   end

 name = "ポチ"
   rename(name)
   puts name
이 코드를 실행하면 출력 결과는 '볼록 점' 만 됩니다.
그러면 어떻게'초도와 볼록점'을 출력합니까?
이 코드의 요점은 여러 번 등장한'name'에 대한 기술이다.
같은 이름이 나왔지만 실제로는 ①와 ②로 내용이 다르다.
...뜻이 이해가 안되네.나도 몰라.
그래서 라인에서 포치에게 울며불며 하소연했다.

"아, 이건 단지 밖에서 이름을 바꾸고 있기 때문이지."
여기서 볼록점이 말하는 바깥쪽은 ②의 부분이다.
 def rename(name)
    name = "もそと#{name}"
   end

 name = "ポチ"
   rename(name)
   puts name
②의 코드에서
"name=볼록점으로 rename(볼록점)을 선택합니다. 그럼name을 꺼내십시오."
이렇게 기술하고 있다.
가장 먼저 name=철점을 말했기 때문에 여기서 가리키는 name의 내용은'철점'이다.
그럼 ①부분은 어때.
rename 정의. name=도 외부 볼록 점입니다.
잘 생각해보세요.
이것은 ②와 ①에서name이 표시하는name의 내용이 다르다.
따라서 출력 결과를 '맹점' 으로 설정해야 한다
 def rename(name)
    name = "もそと#{name}"
   end

 name = "ポチ"
   name=rename(name)
   puts name
이렇게 기술하면 돼!그렇군~!
--
나는 마침내 가벼운 매개 변수의 생각을 이해했다...느낌
보키도 배열과 본 파라미터/임시 파라미터는 매우 복잡하다고 말했기 때문에 나는 여기서 조급해하지 말고 조금씩 깊이 이해해야 한다고 생각한다.
도대체 이해할 수 있는 날이 올까...하지만 수행은 계속되고 있다.

좋은 웹페이지 즐겨찾기