1. String+String 가능. String *int 가능. 다른 건 불가능.
2. to_s to_i to_f ,,,바꾸어준다.
3. 값의 비교는 Java와 반대이다.
- 루비에서는 ==(일반 비교)가 값의 비교이고 equal?가 id값의 비교이다.
4. reference type 만 있다
- a = 3을 만들면 Fixnum class에 저장이 되고,
- 특정 범위가 넘어서면 Bignum class 에 저장이 된다.
5. 클래스 안에 정의되는 변수들은 @ 를 붙여서 만든다.
6. 외부에서 생성자를 통해 만든 변수(인스턴스)를 통해서 클래스 안에 정의된 변수들에는 접근이 불가능하다.
- private 이 default이다.
7. For I in list or for I in range(1..10)
- Range를 표현할 때, 점 두 개는 last를 포함하고 점 세 개는 last를 포함하지 않는다.
- 이러한 표현식보단 (1..10).each { |i| puts i } 라는 특정 함수 실행 후 처리를 블록에 맡기고 람다식을 사용하는 방식을 거의 사용
8. Db Migration
- db를 변경할 수 있는 편리한 방법.
- 소스 업데이트 후 rake db:migrate
- 혹은 rails db:migrate
9. 모델의 properties는 해당하는 db table 에다가 놓는다.
10. Module 안에 있는 class를 생성할 때에는
- a = module::class.new()
- 이렇게 모듈 이름::클래스이름.뉴 를 해줘야 한다.
11. mixin(믹스인)
- 다른 클래스에 있는 method를 사용할 수 있게 해 준다.
- Include class_name, ,,,(class 안에)만 써주면, 하나의 클래스로 여러 클래스가 정의한 메서드를 사용할 수 있다.
12. .dup
- 객체의 다른 방을 복사해서 만든다.
13. Array.new {Array.new}
- 2차원 배열 만들기.
- Array.new를 새롭게 만들어서 이 값을 a.dup를 통해서 값을 전달할 것.
- 그렇게 하나하나 1차원 배열을 넣어서 2차원 배열을 만들 것.
- list << value
- list.push(value)
14. 불변 객체 만드는 방법
- .freeze 사용.
15. 메서드를 제외한 primitive, reference type(list, map, set)의 기본 접근제어는 private이다.
- 이걸 attr_accessor, attr_reader, attr_writer를 통해 접근할 수 있게 만들어준다.
16. private: 은 맨 위에 적지 말고 private으로 만들고 싶은 메서드들 위에다가 적을 것.
17. A < B
- 상속을 받는다면, B가 가지고 있는 모든 def를 A가 사용 가능하다.
- a = A.new() -> 이때, B가 가지고 있는 모든 def를 a.method로 다 접근 가능.
- 물론 이때, overriding 은 당연히 가능.
18. Require와 require_relative 차이점
- https://negabaro.github.io/archive/ruby-module-system-require-etc
- Require은 ruby load path에 등록된 디렉터리를 기준으로 순서대로 하나하나 다 검색한 후 존재하지 않다면 현재 디렉터리에 있는 파일을 읽어온다.
- 사용법 require ‘./m1’
- load path 보는 방법
- ruby -e ‘puts $LOAD_PATH’
- Require_relative는 현재 파일 위치를 기준으로 찾아간다.
- 그래서 프로젝트 폴터 이외의 경로에 있는 파일을 끌어올 때에만 require
19. rib
- ruby 명령어 입력기
20. ;
- 한 줄에 같이 쓸 때 사용.
- { |b; c| a = b + 1; c = a + 1; d = c + 1}
21. name.to_s[0..40]
- 스트링을 자르고 싶을 때 사용.
'ruby' 카테고리의 다른 글
| DI(Dependency Injection) (0) | 2021.12.30 |
|---|---|
| instance variable encapsulation (0) | 2021.12.30 |
| 상속 vs 믹스인(mixin) (0) | 2021.12.28 |
| 블록 (0) | 2021.12.26 |
| 루비에서 람다식이란 (0) | 2021.12.26 |