함수식과 대상방향 프로그래밍

요점


서로 다른 프로그래밍 언어는 서로 다른 특성이나 범례를 가지고 있어 그것들을 분류할 수 있다.
오늘 우리는 함수식과 대상을 향한 두 가지 가장 주목받는 부분을 볼 것이다.
편집#1: 앞에서 지적한 바와 같이 이 두 사람은 서로 대립하는 것이 아니라 단지 다를 뿐이다!이것들은 단지 여러 가지 방법 중의 두 가지일 뿐이다. 모든 서버(타자 오류는 가장 좋은 이중관어)가 당신에게 더 좋은 서비스를 제공할 수 있기 때문에 당신의 연구를 영원히 멈추지 마라!

무슨


우선 그중의 공통점을 살펴보자
  • 두 가지 방법 모두 반드시 해결해야 할 문제
  • 데이터
  • 당신의 프로그램이 무엇을 알고 사용하는지 알고 싶어요
  • 행위
  • 원하는 프로그램 및 방법
  • 대부분의 코드 트레이닝 캠프는 루비나python에서 시작되는데, 이것은 매우 우호적인 언어이기 때문이다.루비로 한번 보여주시죠!

    OOP(Object Program)

  • 일반적으로 생성 대상의 실례에 사용되는 클래스
  • 클래스는 우리가 대상에게 부여하고자 하는 속성을 정의했다.
  • 우리는 우리의 클래스에'실례적인 방법'을 제공할 것이다. 이것은 우리의 대상에 존재할 것이다.
  • 이러한 실례적인 방법은 대상 자체에서 호출할 수 있다.
  • "initialize"는 실례적인 방법이 아니라 클래스를 만들 때 어떤 속성을 가지고 있는지 알려줍니다.
  • 객체의 새 인스턴스마다 사전 설정 데이터와 비헤이비어가 포함됩니다.
  • 위에서 말한 바와 같이 데이터는 창설 시 우리에게 제공될 실례
  • 그리고 우리는 실례 대상의 방법을 사용하여 그의 데이터를 조작한다
  • 객체에 포함된 모든 중요 정보는 클래스에 안전하게 저장됩니다.만약 당신이 상당히 큰 회사의 엔지니어라고 상상할 수 있다면, 사전에 작성된 코드가 매우 많은데, 이것도 어디에서 쓸모가 있는지 볼 수 있을 것이다.

  • 핵심 개념
  • 추상
  • 상속
  • 다태성
  • 패키지

  • 고양이
    def 초기화 (이름, 말투)
    @name=name
    기분
    끝맺다
    def 변경 이름(이름)
    @name=name
    끝맺다
    정서
    기분
    끝맺다
    끝맺다
    쿠마새 (쿠마, 장난)

    위에서 무슨 일이 일어났습니까?

  • Cat 클래스나 청사진을 만들었습니다
  • 우리는 고양이에게 이름과 말투를 지어 주었다.만약 네가 고양이와 함께 있었다면, 그것들의 정서가 네가 고양이의 이름을 기억한 후의 두 번째 일이라는 것을 알게 될 것이다.
  • 이제 그들의 이름과 마음을 바꾸자!
    쿠마.이름 변경(자몽)
    쿠마.이름:
    #자몽
    쿠마.기분 전환("식후 즐거움")
    쿠마.기분
    #'식후 즐거움'

    위에서 무슨 일이 일어났습니까?

  • change name() 방법으로 Cat 클래스 실례 대상
  • 의 이름을 변경할 수 있습니다
  • change mood() 방법으로Cat류 실례 대상
  • 의 정서를 변경할 수 있습니다
  • 저희 initialize 방법은Cat 대상에게 전달된 이름과 정서를 얻고 이 정보를 저장하여 나중에 쉽게 접근할 수 있도록 합니다
  • "@"기호는 개체(인스턴스)에 있는 인스턴스 변수에 사용되며 사용할 때 가져올 필요가 없음
  • 함수 프로그래밍 (FP)

  • 일련의 작은 방법을 사용했고 각 방법마다 각자의 구체적인 작업이 있다.
  • 작은 임무로 대형 임무를 조합하거나 구축하는 것을 실현했는데 이것은 OOP 언어에서도 사용되지만 FP 언어에 매우 중요하다.
  • 객체는 변경될 수 없으며 작성 후 변경할 수 없음
  • 데이터 과학 업무에 적합
  • 함수는 다시 사용할 수 있음

  • 핵심 개념
  • 고급 함수
  • 순함수
  • 귀속
  • 엄격하고 비엄격한 평가
  • 유형 시스템
  • 참조 투명도

  • 여기서 우리는 자연 환경 속의 작은 기능을 보았다
    def doesOneThing(번호)
    반환 번호*
    끝맺다

    위에서 무슨 일이 일어났습니까?

  • 위에 순함수의 예가 있다
  • 같은 입력만 하면 항상 같은 값
  • 을 되돌려줍니다
  • 함수 중 다른 조작이 우리의 결과를 바꿀 수 없음
  • 즉각적인 장점은 코드 줄 수가 더 적다는 것이다!
  • FP에서 우리는 우리가 한 모든 일을 살펴보고 데이터에 어떤 조작을 적용해서 데이터를 변환한 다음에 새로운 데이터 집합
  • 을 되돌릴 것이다.
  • 우리도 each가 아닌 맵 방법을 기본으로 사용합니다. 이 맵은 데이터의 새 복사본을 만들어 그룹에 저장합니다.FP와 마찬가지로 원본 배열이 완전무결하며 데이터의 불변성이 관건
  • 불변성으로 데이터의 가치를 추적할 수 있음
  • 대조표


    토픽
    FP
    아이구
    정의
    기능에 대한 평가 강조
    대상에 기초한 개념
    데이터
    변하지 않았어
    변덕스럽다
    모델
    declarative programming
    imperative programming
    뒷받침
    병렬 프로그래밍 지원
    지원되지 않음
    실행
    문장은 어떤 순서에 따라 집행할 수 있다
    주문이 필요합니까?
    번갈아
    귀속
    순환하다
    기본 요소
    함수와 변수
    객체 및 방법
    사용
    더 많은 조작이 필요한 것은 매우 적다
    많은 일들이 거의 조작되지 않았다
    Thanks to EDUCBA!
    그런데 어떤 거요?
    알겠습니다. 이 sickstackoverflow 게시물에 따르면 이 두 가지 유행하는 방법을 고려할 때 관건적인 개념을 기억해야 합니다.
    아이구
  • 고정된 작업을 처리할 때 유용
  • 코드가 발전함에 따라 새로운 내용을 추가할 것입니다
  • 이것은 당신이 새로운 클래스를 추가했다는 것을 의미하며, 이러한 클래스는 기존의 방법을 이용했다
  • 기존 과정이 방치
  • 위험 구역
  • 새로운 작업을 추가하려면 여러 종류의 정의를 편집해야 새로운 방법을 추가할 수 있습니다
  • FP
  • 고정된 물건이 있을 때 도움이 된다
  • 코드가 발전함에 따라 일부 물건에 새로운 조작을 추가할 것입니다.
  • 기존 데이터 형식을 사용하여 계산하는 새로운 함수를 추가한 것을 의미합니다
  • 기존 기능 유지
  • 위험 구역
  • 새로운 사물을 추가하려면 많은 함수 정의를 편집해야 새로운 사례를 추가할 수 있습니다
  • TLDR;


    대상을 대상으로 프로그래밍을 할 때 클래스, 대상, 방법을 사용하여 숭고한 목표를 실현한다.다른 한편, 함수식 프로그래밍은 대량의 순수 함수와 변수를 이용하여 더욱 큰 전체를 구축한다.온이나 다른 언어에 집중하는 모든 언어는 한계가 있다. (자바스크립트를 봐라.)😭). 어떤 언어나 구조를 지원하는 지역사회를 연구하도록 확보하면 올바른 방향으로 인도될 것이다.즉, 커다란 실수에 부딪히고 다른 방향으로 방향을 바꾸려 할 때까지...이것은 현명하지 못하지만, 결코 불가능한 것은 아니다.단, React 프로그램에 Redux를 추가하는 것처럼, 당신은 왜 자신에게 추가 작업을 하려고 합니까?계획, 계획, 계획!

    좋은 웹페이지 즐겨찾기