More actions
RubyLanguage 소개
RubyLanguage 소개와, 기초 문법을 설명하는 파트
- 루비란 무엇인가
- 루비의 개발 배경
- 루비의 특징
- 루비의 역사
- 루비와의 첫 만남
- http://www.ruby-lang.org
- 루비 설치
- irb 사용법
- 루비 써보기
- 계산기로서의 루비
- Hello World!
- 간단한 코드 따라하기
Ruby 문법 실습
- 환경세팅하기
- tryRuby
- irb
- visual studio의 ironRuby
- netbeans의 ruby플러그인
- eclipse ruby플러그인
- aptana (경량형 이클립스)
- Hello Ruby!
- 루비는 진정한 객체지향 언어다?!
*루비의 모든것은 객체로써 존재한다
123.method "문자열".method
*함수조차 nilClass의 멤버함수
- nilClass의 인스턴스는 nil하나, prototype은 없음. 다른 함수들은 가지고있음
- 멤버변수도 객체, 객체안의 객체!
- 루비의 신기한 배열. 음의 인덱스를 가질 수 있다
- Ruby.new
- 이제 객체를 만들어보자
- 루비에서는 클래스명이 대문자로 시작해야한다!(아니면 에러)
- 루비의 변수명 선언 규칙
- initialize 함수로 객체 선언하기
- 루비의 생성자 initialize. ( 디폴트 생성자가 있나봄)
class Some def initialize # init variables end end
- 멤버변수 선언하기(@)
def initialize @var # this is the way how declaring variable end
- 루비는 객체의 동적인 변경이 가능하다!
- 이미 생성된 인스턴스에 멤버함수 추가하기
class Some def initialize # init variables end end
def Some.function # dynamic function declare end
- 상속
class Some2 < Some def initialize # this is overriding end end
- 함수의 오버라이딩
- 부모 클래스를 동적 변경하면, 자식 클래스의 인스턴스는 어떻게 될까?
- 함수의 오버라이딩
Some2.function2 # undefined method def Some.function2 # new function end Some.function2 # works!
- 루비의 클래스/메소드 체이닝을 가르칠까요?
- attr_reader/attr_writer
- 메서드를 만들어보자! (루비는 return문이 없어도 돼)
- 맨 마지막 연산식의 결과가 리턴됨
- 메서드는 {} 대신 def/end로
- 루비의 함수는 () 생략가능!
- 문자열 반복출력 메소드 만들어보기
- while
- do/while
- for
- 블럭을 이용한 반복자 함수
- 루비의 블럭 넘기기
- 기본 입출력
- 입력받은 문자열 반복 출력해보기
- 정규표현식(생략하는게 나을 듯)
- 예외처리하기 (세번째 세미나에서 필요할까?)
- if/else로 예외 처리해보자
- rescue로 만들기
- 유닛테스트(생략가능)
- 상속을 통한 테스트 케이스 만들기
- 여러분은 이제 루비 유저입니다!
- 자축
Ruby로 만들어보기
- RRobots를 이용한 RubyLanguage Robocode
- 를 하려고 했지만 tcl 문제로 CodeRace로 변경
- Pair Programming : Pair를 밸런스에 맞게 짜드림.
- 레이튼 교수와 함께하는 CodeRace
- A마을에서 B마을로 가려면 강을 건너야한다.
- 배를 타고 두 마을 사이를 오갈 수 있다.
- Step 1
- 레이튼 교수가 배를 타고 건너 B마을로 건너가게 하자.
- 평가
- 레이튼 교수가 A마을에서 B마을로 건너갈 수 있는지 본다.
- 예제