루비(Ruby) 설치
[일단 루비를 설치 하자]
- 루비 설치 url : https://www.ruby-lang.org/ko/documentation/installation/#rubyinstaller
- 설치방법 : 윈도우용 RubyInstaller 를 다운 받아서 실행
- 텍스트 에디터로는 아직 뭐가 좋은지 잘 모르겠으니 일단 sublime을 쓰도록 하자
- Sublime text 설치 url : http://www.sublimetext.com/2
*설치 시 command line 명령어가 바로 먹도록 체크하는 박스를 꼭 체크하도록!
[루비 Command Line 명령어 (수시로 업데이트)]
- ruby xxxx.rb : 작성된 루비 프로그램을 실행
- irb : 루비 프롬프트 컴파일러
[루비 프로그램 작성]
루비 프로그램은 .rb 확장자로 된 소스파일을 가진다.
적절한 개발 Tool로 소스코드를 작성하여 command line 에서 'ruby xxx.rb'로 실행
루비 기본중의 기본
<Tutorial-00-Basic.rb>
# 루비 기본 중의 기본 # 1. 주석은 #(샾) 으로 시작 puts '이거슨 기본 출력 입니다.' puts '한줄 입력 하는건 그냥 입력하면 되고, 개행은 그냥 엔터쳐서 입력하면 됩니다.' puts ('함수 인자는 \'(\' 와 \')\' 안에다 써넣어야 하는데 생략도 가능합니다.') puts '한줄에 하나의 표현식이라면 끝에 ;(세미콜론)을 생략할 수 있다.' # 2. '작은따옴표'와 "큰따옴표" 차이점 $global = 'GLOBAL VARIABLE' localV = 'LOCAL VARIABLE' puts '작은 따옴표는 #$global 이거든 #{$global} 이거든 동작하지 않는다.' puts "큰 따옴표는 #$global 이거도 #{$global} 이거도 잘 동작한다." puts "#{$global} 은 #$global 이 가능하지만 #{localV} 는 #localV 가능하지 않다." # $, @, @@ 등의 전역/인스턴스/클래스 변수는 중괄호 생략이 가능 # 3. 변수, 메소드 대소문자 구별 사용 원리 #def ThisIsFunc # 함수 에러 def thisIsFunc thisIsLocalVariable = 0 _thisIsLocalVariable = 0 # ThisIsLocalVariable = 0 # 지역변수 에러 puts "이건 당연히 가능" puts thisIsLocalVariable puts _thisIsLocalVariable puts "지역변수, arguments, 메서드 이름은 반드시 소문자나 밑줄(_)로 시작해야 한다." puts "전역 변수는 $로 시작하고, 인스턴스 변수는 @로 시작하며, 클래스 변수는 @@로 시작한다." puts "클래스 이름, 모듈 이름, 상수는 반드시 대문자로 시작해야 한다." end #ThisIsFunc # 함수호출 에러 thisIsFunc # 4. 배열 thisArray = [0,1,2,3,4,5] thisArray.each { |arr| puts "{}를 이용한 배열 값들 : #{arr}" } thisArray.each do |arr| puts "do end 를 이용한 배열 값들 : #{arr}" end wordArray = %w{유용한 팁 단어 배열을 쉽게 만들기} wordArray.each do |arr| puts "\%w를 이용한 배열 값들 : #{arr}" end # 5. 분기문 if false puts "분기문 여긴 안들어옴" elsif true puts "분기문 여긴 들어오지" else puts "여긴 절대 들어올 일이 없지" end if true or false puts "true or false 니까 true" elsif true and false puts "true and false 니까 false" else puts "여긴 절대 안들어옴" end # 6. 반복문 while false # do nothing end while ((line = gets.chomp) != 'end') puts line.downcase end # 7. 구문 변경자 valueTest1 = 3001 valueTest2 = 2999 puts "valueTest1(#{valueTest1}) : value가 3000보다 크면 출력" if valueTest1 > 3000 puts "valueTest2(#{valueTest2}) : value가 3000보다 크면 출력" if valueTest2 > 3000 # 8. 블록 #{puts "앞선 예에서와 같이 do~end 와 \{~\} 는 블록"} #do # puts "이것도 코드 블록이다." # puts "이것도 코드 블록이다." #end # 중괄호는 do/end 쌍보다 높은 우선순위를 갖는다. # 한 줄의 블록에는 중괄호를, 여러 줄의 블록에는 do/end 쌍을 사용하는 것이 루비의 code convention 이다. # 9. 해쉬 {'key' => 'value'}, 자바스키립트의 object 개념 map = {'첼로' => '현악기', '클라리넷' => '관악기', '드럼' => '타악기'} puts map['첼로'].to_s + map['클라리넷'].to_s + map['드럼'].to_s + map['피아노'].to_s # map['피아노']는 nil을 반환 hashInstance = Hash.new('기본 value를 세팅') puts hashInstance['nothing']
댓글 없음:
댓글 쓰기