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 반복문에서는 구문 종료와 건너뛰..
- Total
- Today
- Yesterday
- 자바스크립트
- xmind
- database
- 반디집
- GitHub
- 다음팟플레이어
- 루비
- db
- ruby
- 마크다운
- Nas
- quirky
- 샤오미
- MySQL
- Git
- 캡쳐프로그램
- 깃
- 아이폰 7
- 윈도우 10
- 마인드맵
- 몽고DB
- 갤럭시 노트 7
- 픽픽
- 데이터베이스
- 압축프로그램
- MonGo
- mongoDB
- js
- 방수방진
- javascript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |