ruby block
-
Programming Ruby (8) 트랜잭션을 위한 블록, 객체로서의 블록Ruby 2016. 10. 24. 23:50
[출처] Programming Ruby (본 게시물은 저작권의 문제 발생시 출판사의 요청에 의해 삭제될 수 있습니다.) 트랜잭션을 위한 블록 트랜잭션 제어 하에서 동작해야 하는 코드를 작성할때 블록을 사용할 수 있다. 예를 들어 파일을 열고 그내용으로 어떤 작업을 하고 이 작업을 마치면 이 파일이 닫힌다는 사실을 확신하고 싶다고 하자. 블록을 사용하는 방식은 단순하게 표현할수 있다. 다음 예제는 예외처리를 포함하지 않는 간단한 구현을 보여준다. class File def self.open_and_process(*args) f = File.open(*args) yield f f.close() end end File.open_and_process("testfile", "r") do |file| while l..
-
Programming Ruby (4) 배열, 해시, 블록Ruby 2016. 10. 22. 23:27
[출처] Programming Ruby (본 게시물은 저작권의 문제 발생시 출판사의 요청에 의해 삭제될 수 있습니다.) 루비에는 컬렉션을 다루기 위한 배열과 해시라는 두개의 내장클래스가 준비되어 있다. 4.1. 배열 배열의 인덱스는 0 부터 시작한다. 배열의 위치에 아무것도 없다면 nil을 반환한다. 음수로 위치를 지정하면 배열의 뒤에서부터 위치를 계산해 해당하는 위치의 값을 반환한다. a = [ 1, 3, 5, 7, 9 ] a[-1] # => 9 a[-2] # => 7 a[-99] # => nil 배열 인덱스를 [start, count] 처럼 숫자 쌍으로 지정할 수도 있다. 이는 시작점(start)에서 count 만큼의 객체 참조를 뽑아서 새로운 배열을 만들어 반환한다. a = [ 1, 3, 5, 7,..