Ruby - module

Minsoo·2021년 9월 22일
0

Ruby

목록 보기
4/8
post-thumbnail

1. module

모듈? 모듈에 대한 비유
선생과 학생으로 이루어진 학교가 있다 - 학생이 늘어남 - 선생 공급 증가 - 학생 연령에 따라 학년 나눔 - 학년 안에서 반을 또 나눔
반이 없다고 생각하면, 체계없어 여러가지 문제가 발생. 따라서 여러가지 일정 기준에 따라 학생들을 묶는 것. (나이-학년 등)
마찬가지로 파일이 많은 상황이라면, 디렉토리를 만들어 성격이 비슷한 파일을 하나로 묶는다. 양이 많아짐에 따라 발생하는 복잡함을 낮추는 역할을 하는 것이다.

2. built in module

파이썬

#math라는 디렉토리(모듈)안에 아래 관련 메소드들이 그룹핑되어 저장 
import math 
print(math.ceil(2.9)) #올림
print(math.floor(2.9))  #내림
print(math.sqrt(16)) #제곱근

3
2
4.0

루비

puts(Math.sqrt(16))
1
4.0

https://ruby-doc.org/core-2.6/Math.html

3. module in Ruby

중복의 제거, 재활용성의 증대
루비의 모듈은 파일이 분리될 수도, 그렇지 않을 수도 있다.
임포트하는 과정. 파이썬은 import

  • require './Minsoo'
  • require_realtive 'Minsoo'

syntax

#module 키워드와 대문자로 시작하는 모듈명
module Minsoo 
 module_function() 
 #(모듈.함수이름)으로 접근가능하게하는 루비내장함수
 def a()
  return "a"
 end
end

puts(Minsoo.a()) 

모듈 파일 분리
모듈 이해

모듈 분리

module Auth 
  module_function()
  def login(accountid)
    members = ["minsoo", "hj", "kk"]
    for member in members do
      if member == accountid
            return true
        end
    end
    return false #일치하지 못한 사용자에 대한 값.일치 했으면, 위에 포문에서 이미 실행되고 끝났을 것임.
  end
end

모듈 사용

require_relative 'Auth'
puts ("put yout ID")
accounts = gets.chomp()
if Auth.login(accounts) 
  puts ("Hello #{accounts}")
else
  puts ("who are you ?")
end
profile
Hello all 👋🏻 📍London

0개의 댓글