소스 코드를 구문 분석하여 모든 메서드, 메서드가 정의된 위치 및 사용하는 인수를 찾고 싶다고 가정해 보겠습니다. 어떻게 할 수 있나요? 첫 번째 아이디어는 정규 표현식을 작성하는 것입니다... 하지만 더 좋은 방법이 있습니까? 네! 정적 분석 소스 코드 자체에서 정보를 추출해야 할 때 사용할 수 있는 기술입니다. 이는 소스 코드를 토큰으로 변환(파싱)하여 수행됩니다. 바로 시작하겠습니다! 파서 젬 사용 Ruby에는 표준 라이브러리에서 사용할 수 있는 파서가 있으며 이름은 Ripper입니다. 출력은 작업하기 어렵기
Ruby에서 재귀란 무엇입니까? 재귀 함수는 최종 목표에 도달할 때까지 계속 자신을 호출하는 함수입니다(기본 사례라고도 함). ). 각 함수 호출 후 이 기본 사례로 진행하여 남은 작업량을 줄입니다. 기본 사례에 도달하면 재귀가 종료되고 함수가 반환되기 시작합니다. 루비 재귀 재귀에 대해 배우기 시작하는 고전적인 예는 계승 수를 계산하는 것입니다. 반복과 재귀를 모두 사용하여 Ruby에서 이 작업을 수행하는 방법을 봅시다! 숫자의 계승을 계산하려면 1부터 목표 숫자까지 모든 숫자를 곱해야 합니다. 예를 들어 5의 계승은 다
많은 양의 텍스트가 주어지고 그로부터 의미를 추출하고 싶다면 어떻게 하시겠습니까? 좋은 시작은 텍스트를 n-gram으로 나누는 것입니다. . 설명입니다 : 계산 언어학 및 확률 분야에서 n-gram은 주어진 텍스트 시퀀스에서 n개 항목의 연속 시퀀스입니다. – 위키피디아 예를 들어 : 안녕하세요, 안녕하십니까? 유니그램(한 요소의 ngram)은 Hello, there, how, are, you가 됩니다. 및 bigrams(두 요소의 ngrams):[Hello, there], [there, how], [how, are],
if / elsif를 사용해야 할 때마다 대신 Ruby case 문 사용을 고려할 수 있습니다. 이 게시물에서는 몇 가지 다른 사용 사례와 이 모든 것이 내부에서 실제로 어떻게 작동하는지 배울 것입니다. 참고:다른 프로그래밍 언어에서는 이를 스위치라고 합니다. 성명서. Ruby의 case 문의 구성 요소: 키워드 설명 케이스 케이스 문 정의를 시작합니다. 작업할 변수를 가져옵니다. 언제 일치할 수 있는 모든 조건은 when 문입니다. 기타 일치하는 것이 없으면 다음을 수행하십시오. 선택 사항입니다. 루비
용어에 익숙하지 않은 경우 리팩토링은 코드가 수행하는 작업을 변경하지 않고 코드의 품질을 개선하는 행위입니다. 이렇게 하면 코드 작업이 훨씬 쉬워집니다. 이 게시물에서는 몇 가지 일반적인 Ruby 리팩토링 기술을 배웁니다. 시작하겠습니다! 추출 방법 가장 일반적인 리팩토링 중 하나는 추출 방법으로 알려진 것입니다. 이 리팩토링에서는 이전 메서드에서 새 메서드로 일부 코드를 이동합니다. 이렇게 하면 설명적인 이름을 가진 더 작은 방법을 사용할 수 있습니다. 예를 살펴보겠습니다. @sold_items = %w( onions g
Time은 특정 시점을 나타내는 데 도움이 되는 Ruby의 클래스입니다. 이 기사를 읽고 나면 Ruby 시간 마법사가 되기 위해 알아야 할 모든 것을 배우게 될 것입니다! 다루는 주제 : 문자열을 시간 개체로 변환하는 방법 시간을 구성요소로 나누는 방법(일/시간/밀리초…) Date 사용 방법 , DateTime &Time Ruby 클래스 원하는 방식으로 시간 형식을 지정하는 방법 두 Time의 차이를 찾는 방법 개체 해보자! 루비 타임 클래스 Time을 사용할 수 있습니다. 시간과 날짜를 나타내는 Ruby 클래스 이
개체가 변경 가능하다는 것은 무엇을 의미합니까? 가변성 는 객체의 내부 상태가 변경될 수 있음을 의미합니다. 이것은 고정된 개체를 제외한 모든 개체의 기본값입니다. , 또는 특수 개체 목록의 일부인 개체입니다. 즉, Ruby의 모든 객체가 변경 가능한 것은 아닙니다! 예를 들어 : 숫자나 기호, 심지어 true에도 의미가 없습니다. 또는 false (또한 객체이기도 함) 변경할 수 있습니다. 숫자 1은 항상 1이 됩니다. 그러나 다른 개체, 특히 Array 또는 Hash 개체와 같이 데이터를 저장하는 개체는 성능상의 이유
멋진 Ruby 트릭을 찾고 계십니까? 찾았습니다! 이 기사에서는 제가 좋아하는 몇 가지를 여러분과 공유하고 싶습니다. 내용 딥 카피 1개 람다를 호출하는 2가지 다른 방법 3 미리 채워진 배열 만들기 4 True, False 및 nil은 개체입니다. 5 Lambda는 인수에 대해 엄격하지만 Proc는 신경 쓰지 않습니다. 6 irb 또는 파일 없이 직접 코드 실행 7 하나의 명령으로 나만의 미니 irb 8 물체 고정 해제(위험!) 특별한 정체성을 지닌 9가지 개체 10 irb 또는 pry에서 큰 출력을 피하십시오. 11 호출
Ruby 블록, 프로시저 및 람다. 그들은 무엇입니까? 어떻게 작동합니까? 서로 어떻게 다른가요? 이 게시물을 읽고 더 많은 것을 배우게 될 것입니다! 내용 1 Ruby 블록 이해 2 Ruby Yield 키워드 3가지 암시적 블록과 명시적 블록 4 차단이 되었는지 확인하는 방법 5 람다란 무엇입니까? 6개의 Lambda 대 프로세서 7개의 폐쇄 8 바인딩 클래스 9 동영상 튜토리얼 10 마무리 10.1 관련 루비 블록 이해 Ruby 블록은 메서드에 전달할 수 있는 작은 익명 함수입니다. 블록은 do / end로
Ruby를 한동안 사용해 왔다면 내부에서 어떻게 작동하는지 궁금할 것입니다. Ruby 내부를 깊이 파고드는 한 가지 방법은 Ruby가 작동하도록 하는 소스 코드를 읽는 것입니다. C를 모르더라도 흥미로운 것을 배울 수 있습니다. 소스 코드는 Ruby용 github 저장소에서 찾을 수 있습니다. 이상적으로는 클래스 및 메서드 이름을 쉽게 찾을 수 있는 Codequery와 같은 도구를 사용하는 것이 좋습니다. 핵심 클래스 탐색 대부분의 탐색은 루트 폴더에서 이루어집니다. 여기에서 Object와 같은 모든 핵심 클래스의 소스 코드
열거 가능이란 무엇입니까? Enumerable은 반복 메서드 모음입니다. , Ruby 모듈, Ruby를 훌륭한 프로그래밍 언어로 만드는 데 큰 부분을 차지합니다. Enumerable에는 다음과 같은 유용한 방법이 포함됩니다. : map select inject 열거 가능한 메서드는 블록을 제공하여 작동합니다. 그 블록에서 모든 요소로 무엇을 하고 싶은지 알려줍니다. 예를 들어 : [1,2,3].map { |n| n * 2 } 모든 숫자가 두 배로 된 새로운 배열을 제공합니다. 정확한 결과는 map을 사용하는
Ruby를 사용하여 Twitter 애플리케이션을 작성하는 방법을 배우고 싶습니까? 그렇다면 당신은 올바른 위치에 있습니다! 이 게시물에서는 Twitter API와 상호 작용하고 특정 키워드를 찾거나 자동 답장을 보내는 등의 작업을 수행할 수 있는 프로그램을 만드는 방법을 단계별로 알려 드리겠습니다. 시작하겠습니다! 설정 먼저 twitter를 설치해야 합니다. 보석. 이 단계는 매우 간단합니다. gem install twitter 그런 다음 https://apps.twitter.com/으로 이동하여 새 애플리케이션을 설정해
이전에 Ruby 메타프로그래밍에 대해 읽은 적이 있을 것입니다. 하지만… 몇 가지 구체적인 예가 없으면 약간 혼란스러울 수 있습니다. 그래서 이 기사에서 : Ruby 메타프로그래밍을 사용하는 몇 가지 인기 있는 오픈 소스 프로젝트를 살펴보겠습니다. 다음과 같은 프로젝트 : 레일 시나트라 종이 클립 보석 그들 모두는 일종의 메타프로그래밍을 사용합니다. . 코드를 살펴보고 정확히 무엇을 하는지 알아봅시다! 레일 예 Rails는 메타프로그래밍을 많이 사용하므로 처음부터 살펴보는 것이 좋습니다. 예를 들어 : Rail
난수는 일반적으로 우리가 균일 분포라고 부르는 것을 따릅니다. 즉, 임의의 숫자가 선택될 확률이 동일합니다. 그러나 일부 숫자를 다른 숫자보다 더 자주 선택하려면 가중 난수 생성기와 같은 다른 전략이 필요합니다. . 몇 가지 실용적인 응용 프로그램은 다음과 같습니다. 비디오 게임의 전리품 테이블에서 적들이 다양한 드롭률로 다양한 아이템을 드롭할 수 있습니다. 더 많은 티켓을 소지한 사람이 더 많은 당첨 기회를 얻을 수 있는 복권 간단한 전략 추첨 예에 대해 생각해 보면 분명한 해결책을 생각해 낼 수 있습니다. 각 티켓에 대
Ruby 표준 라이브러리는 Ruby와 함께 제공되지만 언어 자체의 일부는 아닌 일련의 모듈 및 클래스입니다. 이 클래스는 다음과 같은 다양한 유틸리티를 제공합니다. Base64 인코딩 소수 생성 DNS 확인 이 기사에서는 유용한 예제와 함께 이러한 클래스 중 5개를 보여 드리겠습니다. Ruby 로거 클래스 일부 오류 또는 디버그 메시지를 기록해야 하는 경우 Ruby에서 Logger로 처리했습니다. 수업. 이 클래스는 로깅을 시작하는 데 필요한 모든 것을 제공합니다! Logger를 사용하려면 클래스는 Logger를 생성하
Ruby의 범위는 무엇이며 어떻게 작동합니까? 범위는 시작 값과 끝 값이 있는 개체이며 이 두 값 사이의 전체 범위에 걸쳐 있는 시퀀스를 만드는 데 도움이 됩니다. 1에서 이동할 수 있습니다. 20으로 또는 a에서 z로 . 이 기사에서 알게 될 내용 : Ruby 범위를 만드는 방법 step 사용 방법 &include? Ruby의 메소드 범위가 내부적으로 작동하는 방식 해보자! 범위 이해 참고로 Ruby 범위 구문은 다음과 같습니다. (1..20) 괄호는 Range를 정의하는 데 필요하지 않습니다. . 그러나 범위에서
함께 프로젝트를 만들어요! ps와 같은 Linux 도구 , top &netstat 훌륭합니다. 시스템 상태에 대한 많은 정보를 제공합니다. 하지만 어떻게 작동합니까? 모든 정보는 어디에서 얻나요? 이를 사용하여 자체 도구를 구축하려면 어떻게 해야 하나요? 이 게시물에서는 세 가지 인기 있는 Linux 도구를 함께 다시 만들 것입니다. 2x1 식사를 하고 Ruby 트릭을 배우고 동시에 유용한 Linux 지식을 얻을 수 있습니다! 🙂 상태 정보 찾기 이제 이 모든 도구가 정보를 찾는 위치에 대한 질문에 답해 보겠습니다.
Linux나 Mac을 사용하는 경우 터미널을 열 때마다 쉘 애플리케이션을 사용하는 것입니다. 쉘은 시스템에서 명령을 실행하는 데 도움이 되는 인터페이스입니다. 쉘은 환경 변수를 호스트하고 명령 기록 및 자동 완성과 같은 유용한 기능을 가지고 있습니다. 내부적으로 작동하는 방식을 배우는 것을 좋아하는 사람이라면 이 게시물이 적합할 것입니다! 쉘은 어떻게 작동합니까? 자체 쉘 애플리케이션을 구축하기 위해 쉘이 실제로 무엇인지 생각해 보겠습니다. 먼저, 일반적으로 현재 사용자 및 현재 디렉토리와 같은 추가 정보가 포함된 프롬프트
Ruby 2.4 병합 Fixnum &Bignum 동일한 클래스로 (Integer ) 그래서 지금이 Ruby의 다양한 숫자 유형을 검토하기에 좋은 시간이라고 생각합니다! 이것이 우리가 이 게시물에서 이야기할 내용입니다 🙂 숫자 유형 개요 Ruby에서 모든 숫자 관련 클래스의 클래스 계층 구조를 살펴보는 것으로 시작하겠습니다. 숫자 정수 Fixnum Bignum Float Complex Rational BigDecimal(표준 라이브러리) 보시다시피 Numeric class는 모든 number 클래스의 부모입니다. ancesto
Ruby로 웹 서버를 구축한 적이 있습니까? 우리는 이미 다음과 같은 많은 서버를 보유하고 있습니다: 퓨마 얇음 유니콘 하지만 이것은 훌륭한 학습 활동이라고 생각합니다. 간단한 웹 서버가 어떻게 작동하는지 알고 싶다면 이 문서에서는 이 작업을 수행하는 방법을 배웁니다. 단계별로! 1단계:연결 수신 대기 어디서부터 시작할까요? 가장 먼저 필요한 것은 TCP 포트 80에서 새 연결을 수신 대기하는 것입니다. 이미 Ruby로 네트워크 프로그래밍에 대한 게시물을 작성했기 때문에 여기에서 어떻게 작동하는지 설명하지 않겠습니다