예외 객체 예외 객체는 Exception 클래스와 그 서브 클래스의 인스턴스입니다. Exception NoMemoryError ScriptError LoadError NotImplementedError SyntaxError SecurityError SignalException StandardError ArgumentError EncodingError FiiberError IndexError IOError LocalJumpError NameError RangeError RegexpError RuntimeError SystemCallError ThreadError TypeError ZeroDivisionError SystemExit SystemStackError 예외 제어 예외 발생 : raise의 인수로 ..
Mixins 모듈이 추가 동작 및 정보를 클래스에 혼합하는 데 사용되면 이를 mixin 이라고합니다. Mixins를 사용하면 코드를 다시 작성하지 않고도 클래스를 사용자 정의 할 수 있습니다. # 모듈 include 하기 - mixin # class 내부에 module을 include 하면 상수나 메서드 앞에 # 모듈 이름을 붙일 필요 없이 모듈의 메소드를 사용할 수 있다. class Angle include Math cos(1) # Math::cos(1) end extend extend 키워드는 클래스 레벨에서 모듈의 메소드를 혼합합니다. 모듈에 정의한 메소드는 인스턴스의 싱글톤 메소드로 추가할 수 있다. module Greet def welcome(name) puts "Hello, #{name}." ..
Modules 모듈은 메소드의 컬렉션이라고 할 수 있습니다. 특정 상수와 메서드가 필요할 때에 모듈을 사용할 수 있습니다. 모듈은 메서드와 상수를 namespace로 분리하는 역할을 합니다. module은 class와 유사해 보이지만, 모듈에는 인스턴스를 만들 수 없으며, 하위 클래스를 만들 수 없습니다. # 모듈 정의하기 module ModuleName CONSTANT_NAME = "Constant value" end # 루비 인터프리터 내부에 존재하는 모듈 사용하기 ModuleName::CONSTANT_NAME # 예시 - Math Module puts Math::PI #==> 3.141592653589793 # 모듈에 싱글톤 메서드 정의. 모듈에 self를 붙여서 정의한 메소드 module Food..
루비에서의 상속 상속 문법 is-a 관계 : 예를들어, Cat is-a Animal의 관계가 성립할 때 상속을 사용합니다. 상속은 Object Cat.superclass #=> Animal Override 자식클래스에서 부모클래스의 속성이나 메서드를 대체합니다. class Animal def initialize(name) @name = name end def walk return "Walking" end end # 메서드 Override class Dog < Animal def walk return "Dog Walking!" end end super 키워드를 사용하면, 자식 클래스(sub, derived) 에서 부모 클래스(super, base) 의 속성이나 메소드에 직접 액세스 할 수 있습니다. # s..
Class Ruby의 모든 것은 Object입니다. Object 는 attribute와 method를 가지고 있습니다. # class 작성하기 class Person def initialize(name, age) @name = name @age = age end def describe puts "I'm #{@name} and #{@age} years old" end end # 객체 생성하기 alice = Person.new("Alice", 10) ada = Person.new("Ada", 9) # 객체 사용하기 alice.describe ada.describe Class 문법 initialize는 class가 생성하는 각각의 객체를 초기화하는 함수로 생각할 수 있습니다. 변수에 @를 사용하여 해당 변수가..
Blocks 블록은 클로저 혹은 익명함수와 비슷합니다. 즉 이름 없는 메서드를 생성하는 방법이라고 할 수 있으며, do...end 혹은 {} 로 정의합니다. 블록은 처리를 하나의 단위로 묶은 것으로, 메서드 호출 시 한번만 지정할 수 있는 인자의 일종입니다. 이런 메서드 호출을 블록 메서드 호출이라고 합니다. 리시버.메소드명(args) do |param| action end object.method { |placeholder| action } # File#open 메서드 예시 File.open("readme.md") do |file| pusts file.read end # Array#each 메서드 사용 예시 - 블록을 파라미터로 받음 my_array = [1, 2, 3, 4, 5] my_array.ea..
메서드 메서드는 def 키워드를 이용하여 정의하며, class와 module에 정의하지 않으면 전역 top level에 정의됩니다. 루비의 메서드는 마지막 줄의 표현식을 자동으로 리턴하므로 return 키워드를 생략할 수 있습니다. # 메서드 정의 def method_name(param) # code end # 메서드 호출 리시버.method_name(args) # 예시 def hello(param) puts "hello " + param end hello("world!") # Method with return def double(n) return n * 2 end output = double(6) puts output # ==> 12 인수 (Parameter) 가변인수는 파라미터에 * 기호를 사용하여 ..
반복문 while문은 조건식이 true인 동안 처리를 반복합니다. # 321 출력 i = 3 while i > 0 do print i i -= 1 end Until문은 while문과 유사하며, 조건식이 false인 동안 처리를 반복합니다. # 321 출력 j = 3 until j == 0 do print j j -= 1 end # 6 출력 i = 0 until i == 6 i += 1 end puts i For...in 문은 range 객체의 값을 하나씩 꺼내어 반복하는데 사용되며 사용법은 아래와 같습니다. for variable in range puts variable end # 1부터 10까지 출력 for num in 1..10 puts num end #=> 1..10 반복문에서는 구문 종료와 건너뛰..
조건문 (Conditionals) if 루비에서 조건문은 if...elsif...else 를 사용합니다. if user_num 0 puts "You picked a positive integer!" else puts "You picked zero!" end # if 표현식 expression if boolean # 예시 puts "Go next" if true # same as if true puts "Go next" end unless Unless - 조건식이 false이면 처리가 실행됩니다. busy = false unless busy puts "I'm OK" else puts "Oh dear! ..
해시 (Hash) 해시는 키-값 쌍을 가지는 콜렉션으로, 배열과는 다르게 항목간의 순서는 없으며, 유일한 키에 대응하는 하나의 값을 가지도록 되어있는 데이터타입 입니다. 해시는 대괄호 내부에 표현하며, 키-값 쌍은 아래와 같이 표현합니다. 키에 해당하는 값을 조회하기 위해서는 hash_name[key_name] 과 같은 형식을 사용합니다. # hash my_hash = { "name" => "Dinah", "age" => 3 } puts my_hash["name"] #=> "Dinah" Hash는 Hash.new 메서드를 이용해서 생성할 수도 있습니다. new 메서드를 사용할 경우 파라미터를 이용해 키에 해당하는 값이 비어있을 경우, 키의 기본값을 설정할 수 도 있습니다. # Hash.new cats =..
- Total
- Today
- Yesterday
- 데이터베이스
- Nas
- 마인드맵
- 윈도우 10
- mongoDB
- 다음팟플레이어
- 갤럭시 노트 7
- ruby
- quirky
- 아이폰 7
- 방수방진
- js
- 깃
- xmind
- 반디집
- 몽고DB
- GitHub
- MonGo
- 자바스크립트
- 캡쳐프로그램
- MySQL
- Git
- 압축프로그램
- 샤오미
- 픽픽
- 마크다운
- javascript
- database
- db
- 루비
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |